DataAdapter更新数据库

yingzhilian2008 2008-12-23 09:19:28
SqlDataAdapter da = new SqlDataAdapter(sb.ToString(), con);
DataSet ds = new DataSet();
tra.Commit();
ds.Clear();
da.Fill(ds, "table");
string str =
"insert into Class values('王二','yuwen','80');" +
"insert into Class values('王二','shuxue','80');" +
"insert into Class values('王二','yingyu','80');" +
"insert into Class values('王二','wuli','80');";
da = new SqlDataAdapter(str, con);
SqlCommandBuilder sqlcmd = new SqlCommandBuilder(da);
int total= da.Update(ds, "table");
ds.AcceptChanges();
这段程序 怎么更新不了数据库啊,望高人指点啊!在线
...全文
126 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingzhilian2008 2008-12-23
  • 打赏
  • 举报
回复
怎么没人回答的
yingzhilian2008 2008-12-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yutian1225 的回复:]
怎么感觉不对啊?
我记得fill是只能用于select的。
insert要用update吧。
而且,在调用fill之前应该把commandtext赋值吧?
[/Quote]

fill是针对SELECT的没错啊 fill后dataset是有值的 没有问题
yingzhilian2008 2008-12-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wysdong 的回复:]
SqlDataAdapter da = new SqlDataAdapter(sb.ToString(), con);
使用 da.Update(ds, "table"),查询语句,必须包含主键,才能更新成功
[/Quote]

换成主键还是不行
yutian1225 2008-12-23
  • 打赏
  • 举报
回复
怎么感觉不对啊?
我记得fill是只能用于select的。
insert要用update吧。
而且,在调用fill之前应该把commandtext赋值吧?
努力,别失业 2008-12-23
  • 打赏
  • 举报
回复
SqlDataAdapter da = new SqlDataAdapter(sb.ToString(), con);
使用 da.Update(ds, "table"),查询语句,必须包含主键,才能更新成功
yingzhilian2008 2008-12-23
  • 打赏
  • 举报
回复
表名没有问题的 在这种情况下事务只能在更新前提交啊 !
kkun_3yue3 2008-12-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 yingzhilian2008 的帖子:]
SqlDataAdapter da = new SqlDataAdapter(sb.ToString(), con);
                    DataSet ds = new DataSet();
                    tra.Commit();
                    ds.Clear();
                    da.Fill(ds, "table");
                    string str =
                        "insert into Class values('王二','yuwen','80');" +
                        "insert into Class values('王二','shuxue','…
[/Quote]

不清楚,不过我发现几个其它问题,不知道是否有关系!
tra.Commit();
你用到了事务,而且已经在更新前提交了,不知道跟这有关系没!
你的表名是Class,看上去很像SQL关键字呀,加上方括号再试试嘞
yingzhilian2008 2008-12-23
  • 打赏
  • 举报
回复
补充一下:CONNECTION什么的都配置好了,就是没有更新得了数据库!
yw0903 2008-12-23
  • 打赏
  • 举报
回复
 string str = 
"insert into Class values('王二','yuwen','80');" +
"insert into Class values('王二','','80');" +
"insert into Class values('王二','yingyu','80');" +
"insert into Class values('王二','wuli','80');";
da = new SqlDataAdapter(str, con);

改成:

DataRow dr =ds.Tables["table"].NewRow();

dr["姓名"]="王二";
dr["课程"]="shuxue";
dr["成绩"]="80";
ds.Tables["table"].Rows.Add(dr);
SqlCommandBuilder sqlcmd = new SqlCommandBuilder(da);
da.InsertCommand = cmd.GetInsertCommand();
da.Update(ds, "table");
xjtandqt 2008-12-23
  • 打赏
  • 举报
回复
SqlDataAdapter da = new SqlDataAdapter(sb.ToString(), con);
DataSet ds = new DataSet();
tra.Commit();
ds.Clear();
da.Fill(ds, "table");
string str =
"insert into Class values('王二','yuwen','80');" +
"insert into Class values('王二','shuxue','80');" +
"insert into Class values('王二','yingyu','80');" +
"insert into Class values('王二','wuli','80');";
da = new SqlDataAdapter(str, con);
SqlCommandBuilder sqlcmd = new SqlCommandBuilder(da);
int total= da.Update(ds, "table");
ds.AcceptChanges();


这里
da.Fill(ds, "table");
da.Update(ds, "table");
da.tables("table") 的内容根本没变

111,130

社区成员

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

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

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