"·ip"应该是"@ip"才对! 

解决方案 »

  1.   

    strExpress = "Select * from data_info order by user_ip";//where  user_ip = '·ip' 
    应该改为:
    strExpress = "Select * from data_info where  user_ip = @ip order by user_ip"; 
    OleDbCommand cmm = new OleDbCommand(strExpress,f.ConnectToDb());
    cmm.Parameters.Add("@ip",OleDbType.VarChar,15);
    cmm.Parameters["@ip"].Value = s;
      

  2.   

    去掉SQL语句中的对参数的单引号!
      

  3.   

    s = "192.168.1.6";
    strExpress = "Select * from data_info where  user_ip = @ip  order by user_ip";//
    OleDbCommand cmm = new OleDbCommand(strExpress,f.ConnectToDb());
    cmm.Parameters.Add("@ip",OleDbType.VarChar,15);
    cmm.Parameters["@ip"].Value = s;
    OleDbDataReader dataReader = cmm.ExecuteReader();
    if(!dataReader.HasRows)
    {}
    else                
    {  
     do
    {
    Console.WriteLine("\t{0}\t{1}\n", dataReader.GetName(0), dataReader.GetName(1));

    while (dataReader.Read())
    Console.WriteLine("\t{0}\t{1}\n", dataReader.GetString(0), dataReader.GetString(1));} while (dataReader.NextResult());
    }
    dataReader.Close();还是不行,这样就出现异常了,
      

  4.   

    cmm.Parameters.Add("@ip",OleDbType.VarChar,15);
    申明了啊!
      

  5.   

    new System.Data.SqlClient.SqlParameter("@IP", OleDbType.VarChar, 15)
      

  6.   

    cmm.Parameters.Add(new OleDbParameter("@IP", OleDbType.VarChar, 15))
      

  7.   

    很明顯的SQL語句的語法錯誤嗎,即然你這樣定義的:
    OleDbCommand cmm = new OleDbCommand(strExpress,f.ConnectToDb());
    那麼strExpress = "Select * from data_info where  user_ip = @ip  order by user_ip";//
    就應該是:
    strExpress = "Select * from data_info where  user_ip = ? order by user_ip";//只有SqlCommand的參數才用@開頭的。