
使用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, 谢谢! 展开
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, 谢谢! 展开
1个回答
展开全部
添加新行,应该使用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);
注意:数据库中表要有主键
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询