急!!ASP.NET程序员进.

来源:百度知道 编辑:UC知道 时间:2024/07/02 17:52:10
我做了更新数据的页面,但一点更新时,它就会说cmd.ExecuteNonQuery()至少一个参数没被指定.请大侠看看我错在哪里?
protected void dg1_UpdateCommand(object source, DataGridCommandEventArgs e)
{
OleDbConnection con = new OleDbConnection();
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("liuyan.mdb");
con.Open();
//声明文本框变量,并与数据列绑定
TextBox t1, t2, t3, t4;
t1 = (TextBox)e.Item.Cells[2].Controls[0];
t2 = (TextBox)e.Item.Cells[3].Controls[0];
t3 = (TextBox)e.Item.Cells[4].Controls[0];
t4 = (TextBox)e.Item.Cells[5].Controls[0];
string sql;
sql = "update liuyan set 编号='" + t1.Text + "',姓名='" + t2.Text + "',留言内容='" + t3.Text + "',留言日期='" + t4.Text + "' where 编号=" +dg1.DataKeys[System.Convert.ToInt32(e.Item.ItemIndex)];
OleDbCommand cmd

sql = "update liuyan set 编号='" + t1.Text + "',姓名='" + t2.Text + "',留言内容='" + t3.Text + "',留言日期='" + t4.Text + "' where 编号=" +

dg1.DataKeys[System.Convert.ToInt32(e.Item.ItemIndex)].Value.ToString();

改成这样再看,你那种写法貌似取不到DataKey的值
----------------------------------------------------------------------------------------------------
你加个断点,把那个实际执行的sql粘出来,就是程序运行时候的string sql 的值
----------------------------------------------------------------------------------------------------
楼上这哥们你是谁啊?名字跟我的像过头了吧?

sql=...后面少了引号吧

检查你update的参数

断点调试,看看各变量的值,另外检查下楼上说的

con.Open(); 打开是错误的 因 cmd.Connection.Open();

大家都没有说到点子上啊,是他的引号太厚了,不要单引号加双引号,直接双引号就行了。
你这样的话,是所有的参数也没有被指定哦。