如何更新dataset到数据库

fengwl 2008-11-05 04:23:53
已知有一个dataset ,知道select 语句,知道连接串。
dataset的数据邦定到一个表格,如何修改表格的数据更新到数据库。
...全文
185 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengwl 2008-11-06
  • 打赏
  • 举报
回复

更新出现错误:
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




coldice319 2008-11-05
  • 打赏
  • 举报
回复
不错啊
猿敲月下码 2008-11-05
  • 打赏
  • 举报
回复
可以先把表格里的内容传到窗体上的控件上如:textbox ,然后修改 ,保存到数据库
zcandyly20211 2008-11-05
  • 打赏
  • 举报
回复
你用的什么数据库?
claymore1114 2008-11-05
  • 打赏
  • 举报
回复
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);
xu_2007 2008-11-05
  • 打赏
  • 举报
回复
他已经指定了SQL语句的!
fengwl 2008-11-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yihongbiao 的回复:]
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)

[/Quote]

这样不行的。 insertcommand,deletecommand,updatecommand都没有指定。系统怎么能更新呢??
techsky 2008-11-05
  • 打赏
  • 举报
回复
修改表格的同时,写修改数据库的语句
deserveit 2008-11-05
  • 打赏
  • 举报
回复
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();
}

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧