如何更新dataset到数据库 已知有一个dataset ,知道select 语句,知道连接串。dataset的数据邦定到一个表格,如何修改表格的数据更新到数据库。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 string connStr = "data source=.;initial catalog=Northwind;user id=sa;password=password";//连接字符串 SqlConnection conn = new SqlConnection(connStr);创建链接string svSql = "select * from CL";//select语句 SqlDataAdapter da;//数据适配器 SqlCommandBuilder scdb;//命令缓存 try { if (conn.State != ConnectionState.Open) { conn.Open();//打开链接 } da = new SqlDataAdapter(svSql, conn); scdb = new SqlCommandBuilder(da); if (this._ds.HasChanges()) { da.Update(_ds);//更新 _ds.AcceptChanges();//提交更改 } } catch (Exception er) { MessageBox.Show(er.Message); } finally { da = null; conn.Close(); } 这样不行的。 insertcommand,deletecommand,updatecommand都没有指定。系统怎么能更新呢?? 1、Update 方法可调用来将 DataSet 中的更改解析回数据源。当调用 Update 方法时,DataAdapter 将分析已作出的更改并执行相应的命令(INSERT、UPDATE 或 DELETE)。当 DataAdapter 遇到对 DataRow 的更改时,它将使用 InsertCommand、UpdateCommand 或 DeleteCommand 来处理该更改。2、SqlDataAdapter catDA = new SqlDataAdapter("SELECT CategoryID, CategoryName FROM Categories", nwindConn); catDA.UpdateCommand = new SqlCommand("UPDATE Categories SET CategoryName = @CategoryName " + "WHERE CategoryID = @CategoryID" , nwindConn);catDA.UpdateCommand.Parameters.Add("@CategoryName", SqlDbType.NVarChar, 15, "CategoryName");SqlParameter workParm = catDA.UpdateCommand.Parameters.Add("@CategoryID", SqlDbType.Int);workParm.SourceColumn = "CategoryID";workParm.SourceVersion = DataRowVersion.Original;DataSet catDS = new DataSet();catDA.Fill(catDS, "Categories"); DataRow cRow = catDS.Tables["Categories"].Rows[0];cRow["CategoryName"] = "New Category";catDA.Update(catDS); 可以先把表格里的内容传到窗体上的控件上如:textbox ,然后修改 ,保存到数据库 更新出现错误:Update 无法找到 TableMapping['Table'] 或 DataTable“Table”。大家看看跟踪时adapter的结果:ada {System.Data.SqlClient.SqlDataAdapter} System.Data.SqlClient.SqlDataAdapterbase {System.Data.SqlClient.SqlDataAdapter} System.Data.Common.DbDataAdapterDeleteCommand null System.Data.SqlClient.SqlCommandInsertCommand null System.Data.SqlClient.SqlCommandSelectCommand {System.Data.SqlClient.SqlCommand} System.Data.SqlClient.SqlCommandUpdateBatchSize 1 intUpdateCommand null System.Data.SqlClient.SqlCommand从跟踪的结果来看,没有指定deletecommand,insertcommand,updatecommand 求一个函数 visual studio 2005 和2008 web service引用 滚动条为什么修改不了 关于RICHTEXTBOX中的字体问题 DateTimePicker控件 水晶报表列怎么排序啊? 寻找c#高手帮我看下这个页面的html代码该如何用c# winform下载 界面设计中关于panel控件的使用! c# 给文件 md5的问题,高分求.谢谢大家!!! Vs2005的image控件为什么不显示图片啊 再次提问,怎么把一个已经存在的dataTable和数据库搭上关系?
SqlConnection conn = new SqlConnection(connStr);创建链接
string svSql = "select * from CL";//select语句
SqlDataAdapter da;//数据适配器
SqlCommandBuilder scdb;//命令缓存
try
{
if (conn.State != ConnectionState.Open)
{
conn.Open();//打开链接
}
da = new SqlDataAdapter(svSql, conn);
scdb = new SqlCommandBuilder(da);
if (this._ds.HasChanges())
{
da.Update(_ds);//更新
_ds.AcceptChanges();//提交更改
}
}
catch (Exception er)
{
MessageBox.Show(er.Message);
}
finally
{
da = null;
conn.Close();
}
这样不行的。 insertcommand,deletecommand,updatecommand都没有指定。系统怎么能更新呢??
2、SqlDataAdapter catDA = new SqlDataAdapter("SELECT CategoryID, CategoryName FROM Categories", nwindConn); catDA.UpdateCommand = new SqlCommand("UPDATE Categories SET CategoryName = @CategoryName " +
"WHERE CategoryID = @CategoryID" , nwindConn);
catDA.UpdateCommand.Parameters.Add("@CategoryName", SqlDbType.NVarChar, 15, "CategoryName");
SqlParameter workParm = catDA.UpdateCommand.Parameters.Add("@CategoryID", SqlDbType.Int);
workParm.SourceColumn = "CategoryID";
workParm.SourceVersion = DataRowVersion.Original;
DataSet catDS = new DataSet();
catDA.Fill(catDS, "Categories");
DataRow cRow = catDS.Tables["Categories"].Rows[0];
cRow["CategoryName"] = "New Category";
catDA.Update(catDS);
更新出现错误:
Update 无法找到 TableMapping['Table'] 或 DataTable“Table”。大家看看跟踪时adapter的结果:ada {System.Data.SqlClient.SqlDataAdapter} System.Data.SqlClient.SqlDataAdapter
base {System.Data.SqlClient.SqlDataAdapter} System.Data.Common.DbDataAdapter
DeleteCommand null System.Data.SqlClient.SqlCommand
InsertCommand null System.Data.SqlClient.SqlCommand
SelectCommand {System.Data.SqlClient.SqlCommand} System.Data.SqlClient.SqlCommand
UpdateBatchSize 1 int
UpdateCommand null System.Data.SqlClient.SqlCommand从跟踪的结果来看,没有指定deletecommand,insertcommand,updatecommand