datatable.newrow来插入数据出错,大家帮忙看一下

uuxiaoli 2004-12-19 02:56:09
源代码如下:
Dim cnTemp As SqlConnection = New SqlConnection("Persist Security Info=False;Integrated Security=false;database=service;server=127.0.0.1;user=sa; Connect Timeout=30")
Dim dsetTemp As DataSet
Dim cmdTemp As SqlDataAdapter
Dim intTemp As Integer
Dim strNumber As String
Dim strName As String
Dim rowTemp As DataRow
strNumber = TxtNumber.Text
strName = TxtName.Text
If strNumber = "" Or strName = "" Then
Exit Sub
End If
cnTemp.Open()
dsetTemp = New DataSet()
cmdTemp = New SqlDataAdapter("select * from person", cnTemp)
cmdTemp.Fill(dsetTemp, "person")
rowTemp = dsetTemp.Tables("person").NewRow
rowTemp.BeginEdit()
rowTemp("Pnumber") = strNumber
rowTemp("Pname") = strName
rowTemp("Ppassword") = "1"
rowTemp("Padmin") = 0
rowTemp.EndEdit()
dsetTemp.Tables("person").Rows().Add(rowTemp)
cmdTemp.Update(dsetTemp, "person")
cnTemp.Close()

执行时出错:
异常详细信息: System.InvalidOperationException: 当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。
...全文
154 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
uuxiaoli 2004-12-19
  • 打赏
  • 举报
回复
非常感谢!
问题解决了,加上cmd1 = New SqlCommandBuilder(cmdTemp)就可以了
precipitant 2004-12-19
  • 打赏
  • 举报
回复
oda=new OleDbDataAdapter("select img_id,img_detail,info_id,img_type,img_contenttype,img_store_way,img_filename,img_size from tb_house_image",dbConn);
OleDbCommandBuilder a=new OleDbCommandBuilder(oda);
ds=new DataSet();
oda.Fill(ds,"test");
drow=ds.Tables["test"].NewRow();
drow[0]=flowID;
drow[1]=Docbuffer;
drow[2]=Convert.ToInt32(flowid.Text.Trim());
drow[3]=strDocExt;
drow[4]=upFile.ContentType;
drow[5]=houseRepair.hrConst.ImageToWhere;
drow[6]=strDocName;
drow[7]=intDocLen;
ds.Tables["test"].Rows.Add(drow);
oda.Update(ds,"test");
ifUpload=1;
goody9807 2004-12-19
  • 打赏
  • 举报
回复
先不要进行插入数据 先看看连数据库连的上吗
飞一龙 2004-12-19
  • 打赏
  • 举报
回复
select * from person是查询语句.
要用insert
curllion 2004-12-19
  • 打赏
  • 举报
回复
用SqlDataAdapter来update时,你要给它指定一个用来执行插入的InsertCommand,就象你上面定义SqlDataAdapter时,它的SelectCommand 的Text属性就是"select * from person",如果你使用的是vs.net,你可以在最初情况下先创建SqlDataAdapter,那么vs.net会为你自己动创建一个SqlConnection,还有,如果你同时给它创建了一个SelectCommand,那么,它可以为你自动创建InsertCommand,DeleteCommand和UpdateCommand,以满足你插入、删除和修改数据的需要。
sunny6281 2004-12-19
  • 打赏
  • 举报
回复
cmdTemp需要有update命令和insert命令的定义

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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