使用dataset修改记录,数据库的值没有改变,请问是怎么回事?

补充代码:stringstr="select*fromCJBwhereJJH='"+jjh+"'andDWBH='"+dwbh+"'";OracleDataAdapter... 补充代码:
string str = "select * from CJB where JJH='" + jjh + "' and DWBH= '" + dwbh+ "'";

OracleDataAdapter adp2 = new OracleDataAdapter(str, oraCon);
OracleCommandBuilder cjbBuilder = new OracleCommandBuilder(adp2);
DataSet ds2 = new DataSet();
adp2.Fill(ds2,"orgCJBK");
DataTable dtb2 = ds2.Tables["orgCJBK"];
dtb2.PrimaryKey = new DataColumn[] {dtb2.Columns["DWBH"],dtb2.Columns["JJH"] };
DataRow row2 = dtb2.Rows[0];//只有一行数据
row2["FABW"] = "aaaa";
row2["BWFL"] = "bbbb";
row2["BWXL"] = "ccccc";......省略一些字段的修改值
dtb2.Rows[0].AcceptChanges();//不加这句话,运行就报错
adp2.Update(ds2, "orgCJBK");
以上就是程序代码,运行没有问题,但是数据库的值就是没有改变,请问是什么原因,哪儿的代码需要修改,另外,这个表的主键是组合建,JJH+DWBH, 谢谢!
展开
 我来答
百度网友126e4f3
2011-06-17 · 超过50用户采纳过TA的回答
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:166万
展开全部
添加新行,应该使用DataRow row2=dtb2.Rows.NewRow();
追问
不是添加新行,这一行已经有数据存在了,只是部分数据的值需要修改,如果我newrow(),原来的数据就为空了,...
追答
string str = "select * from CJB where JJH='" + jjh + "' and DWBH= '" + dwbh+ "'";

OracleDataAdapter adp2 = new OracleDataAdapter(str, oraCon);
OracleCommandBuilder cjbBuilder = new OracleCommandBuilder(adp2);
DataTable dt = new DataTable();
adp2.Fill(dt);
dt.Rows[0]["FABW"] = "aaaa";
dt.Rows[0]["BWFL"] = "bbbb";
dt.Rows[0]["BWXL"] = "ccccc";......省略一些字段的修改值

adp2.Update(dt);

注意:数据库中表要有主键
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式