跟踪调试时检查下 queryString 的内容,把这个内容在 Access 中运行一下看看.

解决方案 »

  1.   

    我在Access中用的就是quieryString中的内容,在Access中运行的语句是:
    UPDATE phones SET phone='123456' WHERE id=5
      

  2.   

    如果不是INSERT的话,COMMAND 本身不支持多个参数,这样写吧OleDbCommand command = new OleDbCommand();
    command.Connection = FormMain.dataConnection;
    command.CommandText = string.Format("UPDATE phones SET phone='{0}' WHERE id={1}", txtPhone.Text.Trim(),id.ToString());
    command.ExecuteNonQuery();
      

  3.   

    可是为什么SQL Server支持呢?
      

  4.   

    id自动编号应该是int类型
    string queryString = "UPDATE phones SET phone=@phone WHERE id=@id";
    OleDbCommand command = new OleDbCommand(queryString, FormMain.dataConnection);
    command.Parameters.Add("@id", Convert.ToInt32(id));
    command.Parameters.Add("@phone", txtPhone.Text.Trim());
    command.ExecuteNonQuery();
      

  5.   

    string queryString = "UPDATE phones SET phone=@phone WHERE id=@id";
    OleDbCommand command = new OleDbCommand(queryString, FormMain.dataConnection);
    command.Parameters.Add("@phone", txtPhone.Text.Trim());
    command.Parameters.Add("@id", id.ToString());
    command.ExecuteNonQuery();
    顺序要一致!先@phone再@id,再试一下吧!