dataset中多个关联表更新回数据库如何处理各表自增列。给我个示例

spy7 2006-02-18 05:03:29
dt1 = New DataTable("address_wjj") '对应文件夹
dt1.Columns.Add(New DataColumn("wjjid", GetType(Integer))) '0
dt1.Columns.Add(New DataColumn("wjjmc", GetType(String))) '1 单位名称
dt1.Columns("wjjid").AutoIncrement = True
dt1.Columns("wjjid").AutoIncrementSeed = -1
dt1.Columns("wjjid").AutoIncrementStep = -1
dt1.PrimaryKey = New DataColumn() {dt1.Columns("wjjid")}
myds.Tables.Add(dt1)

dt2 = New DataTable("address_kp") '对应卡片
dt2.Columns.Add(New DataColumn("kpid", GetType(Integer))) '0
dt2.Columns.Add(New DataColumn("kpmc", GetType(String))) '1 卡片名称
dt2.Columns.Add(New DataColumn("kpdz", GetType(String))) '2 卡片地址
dt2.Columns.Add(New DataColumn("kpbh", GetType(String))) '3 卡片编号
dt2.Columns.Add(New DataColumn("kp2wjj", GetType(Integer))) '4 卡片对应文件夹
dt2.Columns("kpid").AutoIncrement = True
dt2.Columns("kpid").AutoIncrementSeed = -1
dt2.Columns("kpid").AutoIncrementStep = -1
dt2.PrimaryKey = New DataColumn() {dt2.Columns("kpid")}
myds.Tables.Add(dt2)
myds.Relations.Add(New DataRelation("dt1dt2", dt1.Columns("wjjid"), dt2.Columns("kp2wjj")))

dt3 = New DataTable("address_zhu") '对应foxmail组
dt3.Columns.Add(New DataColumn("zhuid", GetType(Integer))) '0
dt3.Columns.Add(New DataColumn("zhumc", GetType(String))) '1 组名称
dt3.Columns.Add(New DataColumn("zhu2wjj", GetType(Integer))) '2 组对应文件夹
dt3.Columns("zhuid").AutoIncrement = True
dt3.Columns("zhuid").AutoIncrementSeed = -1
dt3.Columns("zhuid").AutoIncrementStep = -1
dt3.PrimaryKey = New DataColumn() {dt3.Columns("zhuid")}
myds.Tables.Add(dt3)
myds.Relations.Add(New DataRelation("dt1dt3", dt1.Columns("wjjid"), dt3.Columns("zhu2wjj")))

dt4 = New DataTable("address_zhucy") '对应组成员
dt4.Columns.Add(New DataColumn("zhucyid", GetType(Integer))) '0
dt4.Columns.Add(New DataColumn("zhucy2zhu", GetType(Integer))) '1 组成员对应组编号
dt4.Columns.Add(New DataColumn("zhukpbh", GetType(String))) '2 组对应卡片编号
dt4.Columns("zhucyid").AutoIncrement = True
dt4.Columns("zhucyid").AutoIncrementSeed = -1
dt4.Columns("zhucyid").AutoIncrementStep = -1
dt4.PrimaryKey = New DataColumn() {dt4.Columns("zhucyid")}
myds.Tables.Add(dt4)
myds.Relations.Add(New DataRelation("dt3dt4", dt3.Columns("zhuid"), dt4.Columns("zhucy2zhu")))
更新回数据库如何处理各表自增列,帖子http://topic.csdn.net/t/20021104/17/1147612.html中 saucer (思归) 老大说:Create a relation between the two DataTable's in DataSet on CustomerID and set up the right CustomerID, when you update DataSet, the database will fix the values for you


我用一下代码却不行

Dim MyConnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("connectionstring"))
Dim MyCommand1 As SqlCommand = New SqlCommand
Dim MyCommand2 As SqlCommand = New SqlCommand
Dim MyCommand3 As SqlCommand = New SqlCommand
Dim MyCommand4 As SqlCommand = New SqlCommand
MyCommand1.Connection = MyConnection
MyCommand2.Connection = MyConnection
MyCommand3.Connection = MyConnection
MyCommand4.Connection = MyConnection
MyCommand1.CommandText = "select * from address_wjj where 1=2"
MyCommand2.CommandText = "select * from address_kp where 1=2"
MyCommand3.CommandText = "select * from address_zhu where 1=2"
MyCommand4.CommandText = "select * from address_zhucy where 1=2"
MyCommand1.CommandType = CommandType.Text
MyCommand2.CommandType = CommandType.Text
MyCommand3.CommandType = CommandType.Text
MyCommand4.CommandType = CommandType.Text
Dim mySqlDataAdapter1 As SqlDataAdapter = New SqlDataAdapter(MyCommand1)
Dim mySqlDataAdapter2 As SqlDataAdapter = New SqlDataAdapter(MyCommand2)
Dim mySqlDataAdapter3 As SqlDataAdapter = New SqlDataAdapter(MyCommand3)
Dim mySqlDataAdapter4 As SqlDataAdapter = New SqlDataAdapter(MyCommand4)
Dim cb1 As SqlCommandBuilder = New SqlCommandBuilder(mySqlDataAdapter1)
Dim cb2 As SqlCommandBuilder = New SqlCommandBuilder(mySqlDataAdapter2)
Dim cb3 As SqlCommandBuilder = New SqlCommandBuilder(mySqlDataAdapter3)
Dim cb4 As SqlCommandBuilder = New SqlCommandBuilder(mySqlDataAdapter4)
Try
MyConnection.Open()
mySqlDataAdapter1.Update(myds.Tables(0))
mySqlDataAdapter2.Update(myds.Tables(1))
mySqlDataAdapter3.Update(myds.Tables(2))
mySqlDataAdapter4.Update(myds.Tables(3))
lblMsg.Text = "保存成功"
Catch Exp As SqlException
lblMsg.Text = "错误:保存不成功"
'message.Style("color") = "red"
Finally
MyCommand1.Connection.Close()
MyCommand2.Connection.Close()
MyCommand3.Connection.Close()
MyCommand4.Connection.Close()
End Try


...全文
147 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
spy7 2006-02-19
  • 打赏
  • 举报
回复
up
spy7 2006-02-18
  • 打赏
  • 举报
回复
to lidong6(立冬) 我要完整的示例
lidong6 2006-02-18
  • 打赏
  • 举报
回复
填充自动递增列可以这样,DataAdapter.InsertCommand="insert table (..) values(...) ;select @@identity;"

62,041

社区成员

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

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

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

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