update更新出错!
本人现在在做一个动态新增记录的方法,所用的操作是记录集的方式,
当我用OracleDataAdapter里面的update(ds,Tablename)来更新数据的时候,系统出现了这样的提示:
未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中。
其他信息: 当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。
请问这个问题要如何解决才好啊??谢谢了!~~~
问题点数:20、回复次数:5Top
1 楼zhanglizhao(醉猫)回复于 2005-08-03 08:26:45 得分 0
检查一下是否写了OracleDataAdapter的InsertCommand 或者InsertCommand 是否正确Top
2 楼hzysoft(冰风)回复于 2005-08-03 08:40:34 得分 0
我没有写这个insertcommand命令,我新增记录是用DataRow里面的一个NewRow方法,所以这里面没有什么插入命令,
我以前用的是:
OracleConnection conn = new OracleConnection(myConnectionString);
OracleDataAdapter oda = new OracleDataAdapter("select * from hzynet.useradmin order by id", conn);
OracleCommandBuilder CB = new OracleCommandBuilder(oda);
DataSet ds = new DataSet();
oda.Fill(ds, "useradmin");
//int TempID=int.Parse (ds.Tables["useradmin"].Rows [0]["id"].ToString()+1);
DataRow dr = ds.Tables["useradmin"].NewRow();
dr["id"] = ID_TB.Text.ToString();
dr["name"] = NAME_TB.Text.ToString();
dr["sex"] = SEX_TB.Text.ToString();
dr["year"] = YEAR_TB.Text.ToString();
dr["class"] = CLASS_TB.Text.ToString();
dr["zj"] = ZJ_TB.Text.ToString();
dr["jsqx"] = JSQX_TB.Text.ToString();
dr["tel"] = TEL_TB.Text.ToString();
dr["jscs"] = JSCS_TB.Text.ToString();
dr["djrq"] = DATA_TB.Text.ToString();
dr["address"] = ADDRESS_TB.Text.ToString();
dr["demo"] = DEMO_TB.Text.ToString();
ds.Tables["useradmin"].Rows.Add(dr);
int errorNum = oda.Update(ds, "useradmin");
if (errorNum == 1)
{
MessageBox.Show("添加成功!");
}
else
{
MessageBox.Show("添加失败");
}
以前这样做可以新增记录,但是现在我实现的是一个动态的新增方法。
到了update更新的时候就出错了,哎!!!
请问要如何解决啊???我现在急啊!!!Top
3 楼songhtao(三十年孤独)回复于 2005-08-03 08:44:27 得分 0
OracleDataAdapter需要设置它的InsertCommandTop
4 楼lyb_abiandbel(专注于OO分析与设计)回复于 2005-08-03 08:47:43 得分 0
update需要DataAdapter的InsertCommand,deletecommand,selectommand,updatecommand,
这四个最好写全了。Top
5 楼hzysoft(冰风)回复于 2005-08-03 09:00:41 得分 0
像我前面的那些代码没有写insertcommand命令,他同样能够新增保存。
我最终的目地就是不想用SQL的那些插入命令,而用dateAdapter和dataset来添加数据!!
Top




