我只要更新数据库中的两个字段,我这样写代码但是提示错误啊
private void btnOk_Click(object sender, System.EventArgs e)
{
    OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OleDb.4.0;Data Source="+Server.MapPath("data/MyGuestBook.mdb"));
string updateString = "update mybook set replyContent = @replyContent,replyTime = @replyTime where id = selId"; 
OleDbCommand comm = new OleDbCommand(updateString,conn);
conn.Open();
comm.Parameters.Add(new OleDbParameter("@replyContent",OleDbType.VarWChar));
comm.Parameters["@replyContent"].Value = txtReply.Text;
comm.Parameters.Add(new OleDbParameter("@replyTime",OleDbType.Date));
comm.Parameters["@replyTime"].Value = DateTime.Now;
comm.ExecuteNonQuery();
conn.Close();
Response.Redirect("index.aspx");
}
难道我要把所有的字段语句都写上才可以吗?
请指教!!
今天把分都给拉,没办法,对不起

解决方案 »

  1.   

    偶也是初学 好像 oledb的语句应该是这样子的replyContent = ?,replyTime = ?
      

  2.   

    你把参数放到OleDbCommand comm = new OleDbCommand(updateString,conn);的下面,,
      

  3.   

    "update mybook set replyContent = @replyContent,replyTime = @replyTime where id = selId"; 
    ===>
    "update mybook set replyContent = @replyContent,replyTime = @replyTime where id = @selId";
      

  4.   

    string updateString = "update mybook set replyContent = ?,replyTime = ? where id = selId"OleDbData 不支持显式声明参处,要用 “?” 占位符代替
      

  5.   

    string updateString = "update mybook set replyContent = ?,replyTime = ? where id = selId"sql 语句是这样
    剩下的好像跟你的一样
    你试试
      

  6.   

    OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OleDb.4.0;Data Source="+Server.MapPath("data/MyGuestBook.mdb"));
    string updateString = string.Format("update mybook set replyContent = '{0}',replyTime = {1} where id = '{2}'", txtReply.Text, DateTime.Now, selId); 
    OleDbCommand comm = new OleDbCommand(updateString,conn);
    conn.Open();
                                comm.ExecuteScalar();
    conn.Close();
      

  7.   

    就执行一个update语句没有必要用parammiter,  麻烦