private void button_Click(object sender, System.EventArgs e)
{
string conn="Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+ Server.MapPath("test.mdb");
OleDbConnection Astrconn=new OleDbConnection(conn);
OleDbDataAdapter Adapter=new OleDbDataAdapter("select * from GuestBook_user",Astrconn);
DataSet ds=new DataSet();
Adapter.Fill(ds,"GuestBook_user");
ds.Tables["GuestBook_user"].Rows[0]["username"]=name.Text;
ds.Tables["GuestBook_user"].Rows[0]["password"]=mima.Text;
ds.Tables["GuestBook_user"].Rows[0]["Email"]=email.Text;
ds.Tables["GuestBook_user"].Rows[0]["title"]=title.Text;
ds.Tables["GuestBook_user"].Rows[0]["sitename"]=urlname.Text;
ds.Tables["GuestBook_user"].Rows[0]["url"]=url.Text; Adapter.Update(ds,"GuestBook_user");
Response.Write("update success");
}
这是现在的代码,
当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand。源错误:
行 105: ds.Tables["GuestBook_user"].Rows[0]["url"]=url.Text;
行 106:
行 107: Adapter.Update(ds,"GuestBook_user");
行 108: Response.Write("update success");
行 109: }
我想这样update数据,但不知道哪错了,没有update成功,
再者,怎么动态更新数据库,也就是说得到id后,怎么update得到id那行 (在dataset里)
{
string conn="Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+ Server.MapPath("test.mdb");
OleDbConnection Astrconn=new OleDbConnection(conn);
OleDbDataAdapter Adapter=new OleDbDataAdapter("select * from GuestBook_user",Astrconn);
DataSet ds=new DataSet();
Adapter.Fill(ds,"GuestBook_user");
ds.Tables["GuestBook_user"].Rows[0]["username"]=name.Text;
ds.Tables["GuestBook_user"].Rows[0]["password"]=mima.Text;
ds.Tables["GuestBook_user"].Rows[0]["Email"]=email.Text;
ds.Tables["GuestBook_user"].Rows[0]["title"]=title.Text;
ds.Tables["GuestBook_user"].Rows[0]["sitename"]=urlname.Text;
ds.Tables["GuestBook_user"].Rows[0]["url"]=url.Text; Adapter.Update(ds,"GuestBook_user");
Response.Write("update success");
}
这是现在的代码,
当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand。源错误:
行 105: ds.Tables["GuestBook_user"].Rows[0]["url"]=url.Text;
行 106:
行 107: Adapter.Update(ds,"GuestBook_user");
行 108: Response.Write("update success");
行 109: }
我想这样update数据,但不知道哪错了,没有update成功,
再者,怎么动态更新数据库,也就是说得到id后,怎么update得到id那行 (在dataset里)
解决方案 »
- asp.net项目部署到win2003下的问题(着急)(40分)
- 页面关闭问题
- 怎么把textbox中填入的值保存到数据库表中
- 如何更新Datatable 或者 dataset 的数据类型
- 如果div或者span元素中没有内容,如何触发鼠标事件?
- 系统新闻
- 关于数据绑定的问题,请帮忙解释下.
- asp.net的问题,好象挺简单!但是我搞不明白!
- asp.net 2.0 servert 2003 企业版 附件上传超过80K上传后为0K 等!!!!!!!!!!!!!!
- 高手请进,有关参数传递的问题。急!在线等待,顶者有分(不够另加!)
- 如何设置session的超时时间!
- 弱弱的问一句,关于CheckBox_CheckedChanged方法的问题
SqlCommand cmd = new SqlCommand("update test set A=@A where ID=@ID",conn);
cmd.Parameters.Add("@A", SqlDbType.VarChar, 50, "A");
cmd.Parameters.Add("@ID", SqlDbType.Int, 4, "ID");
Adapter.UpdateCommand = cmd;
Adapter.Update(ds,"GuestBook_user");
不用关心具体是哪一行被修改、新增、或者删除。ADO.NET的CommandBuilder类可以根据当前DataRow的DataRowStatus来自己创建SQL语句来提交。
{
string conn="Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+ Server.MapPath("test.mdb");
OleDbConnection Astrconn=new OleDbConnection(conn);
OleDbDataAdapter Adapter=new OleDbDataAdapter("select * from GuestBook_user",Astrconn);
System.Data.OleDb.OleDbCommandBuilder cmd = new System.Data.OleDb.OleDbCommandBuilder(Adapter);
DataSet ds=new DataSet();
Adapter.Fill(ds,"GuestBook_user");
ds.Tables["GuestBook_user"].Rows[0]["username"]=name.Text;
ds.Tables["GuestBook_user"].Rows[0]["password"]=mima.Text;
ds.Tables["GuestBook_user"].Rows[0]["Email"]=email.Text;
ds.Tables["GuestBook_user"].Rows[0]["title"]=title.Text;
ds.Tables["GuestBook_user"].Rows[0]["sitename"]=urlname.Text;
ds.Tables["GuestBook_user"].Rows[0]["url"]=url.Text; Adapter.Update(ds,"GuestBook_user");
Response.Write("update success");
}