sqldataadapter.update不能修改数据库

我想把整理好的datatable数据更新,想用SqlDataAdapter.Update()方法去修改数据库,提示已经修改,但数据库中没有任何更新,代码如下,大家帮我看盾... 我想把整理好的datatable数据更新,想用SqlDataAdapter.Update()方法去修改数据库,提示已经修改,但数据库中没有任何更新,代码如下,大家帮我看盾到底是哪里错了。
using (SqlConnection con = this.GetConnection()) {
SqlCommand comm = con.CreateCommand();
comm.CommandType = CommandType.Text;
comm.CommandText = string.Format("SELECT * FROM {0} where 1=0", table.TableName);
SqlDataAdapter adapter = new SqlDataAdapter(comm);
adapter.SelectCommand = comm;
adapter.UpdateBatchSize = table.Rows.Count;
adapter.SelectCommand.Transaction = con.BeginTransaction();
try {
table.AcceptChanges();
foreach (DataRow row in table.Rows) {
row.SetModified();
}
SqlCommandBuilder commandBulider = new SqlCommandBuilder(adapter);
int a = adapter.Update(table);
table.AcceptChanges();
adapter.SelectCommand.Transaction.Commit();
return a;
} catch (Exception ex) {
if (adapter.SelectCommand != null && adapter.SelectCommand.Transaction != null) {
adapter.SelectCommand.Transaction.Rollback();
}
return -1;
}
}
展开
 我来答
yl_ls
2013-07-18 · TA获得超过459个赞
知道小有建树答主
回答量:409
采纳率:0%
帮助的人:415万
展开全部
就像 SqlDataAdapter 查询数据要设置 SelectCommand 一样

更新要设置 UpdateCommand
更多追问追答
追问
我在SqlCommandBuilder commandBulider = new SqlCommandBuilder(adapter);后面加上      adapter.UpdateCommand = commandBulider.GetUpdateCommand();也还是一样,更新不了
追答
自动生成的 UpdateCommand 要求可知的主键,此主键需要在代码上明确指定,无主键不能生成正确的 where 子句
手机用户07634
2013-07-18 · 贡献了超过264个回答
知道答主
回答量:264
采纳率:0%
帮助的人:74万
展开全部
myAdpt.Fill(DataSet16284 "1")DataGridView1.DataSource = DataSet1.Tables("学生表")   这两句是有关系的改成这样myAdpt.Fill(DataSet1 "1")DataGridView1.DataSource = DataSet1.Tables("1")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式