标题:[求助]如何将DataSet更新到数据库中
只看楼主
水晶蝎子
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2005-8-27
 问题点数:0 回复次数:10 
[求助]如何将DataSet更新到数据库中
现在已用其他控件对DataSet的实例做了更新,请教大家如何将DataSet更新到数据库,用的是,谢谢啦。。。
搜索更多相关主题的帖子: DataSet 数据库 实例 控件 
2006-09-13 14:59
小海龟
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1068
专家分:4
注 册:2006-8-1
得分:0 
EkD5Kkb2.rar (54.16 KB) [求助]如何将DataSet更新到数据库中



看看这个例子吧.

[bc09] 犯强汉者,虽远比诛!
2006-09-13 15:43
水晶蝎子
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2005-8-27
得分:0 
问题解决,多谢楼上啦。。。

2006-09-13 20:10
水晶蝎子
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2005-8-27
得分:0 
请问版主,您给的例子之可以修改DataGrid数据,但修改后不能更新到数据库,获取的还是原来的信息,这是什么原因呢?谢谢您的解答。。。

2006-09-14 11:44
小海龟
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1068
专家分:4
注 册:2006-8-1
得分:0 

我的2005都正常呀.


[bc09] 犯强汉者,虽远比诛!
2006-09-14 11:45
水晶蝎子
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2005-8-27
得分:0 

我用的也是05,只是修改了一下数据库连接字符串和查询语句,没有报错,帮忙看看啊:

Imports System.Data.SqlClient
Imports System.Data
Public Class Form1
Dim da As New SqlDataAdapter
Dim cb As New SqlCommandBuilder
Dim ds As New DataSet


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim con As New SqlConnection("Data Source=.;Initial Catalog=dps003b;User ID=sa;password=sa")
Try
Dim com As New SqlCommand("SELECT ManNo, ManName, sex, ZW, remark,isused FROM StoreMan", con)

da = New SqlDataAdapter(com)
da.SelectCommand = com
da.UpdateCommand = com '加了这句这句,没有的话会报错
cb = New SqlCommandBuilder(da)
da.Fill(ds)
DataGridView1.DataSource = ds.Tables(0)
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
da.Update(ds.Tables(0).GetChanges())
ds.Tables(0).AcceptChanges()
ds.Tables.Clear() '加了这一句,重新绑定前清空ds
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
End Sub

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
Me.Button1.Focus()

Try
'ds.Tables(0).Rows(DataGridView1.CurrentRow.Index).Delete()
da.Update(ds.Tables(0).GetChanges())
ds.Tables(0).AcceptChanges()
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
End Sub
End Class

[此贴子已经被作者于2006-9-14 12:24:51编辑过]


2006-09-14 12:22
水晶蝎子
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2005-8-27
得分:0 
有知道的朋友帮忙看看吧,着急,谢谢啦。。。

2006-09-14 20:43
小海龟
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1068
专家分:4
注 册:2006-8-1
得分:0 

da.UpdateCommand = com '加了这句这句,没有的话会报错


报什么错?


[bc09] 犯强汉者,虽远比诛!
2006-09-15 12:00
水晶蝎子
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2005-8-27
得分:0 
不加的话运行到da.Update(ds.Tables(0).GetChanges())时报错,这是错误文本,如果加了就没有。

System.InvalidOperationException: 对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。
在 System.Data.Common.DbDataAdapter.UpdatingRowStatusErrors(RowUpdatingEventArgs rowUpdatedEvent, DataRow dataRow)
在 System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)
在 System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping)
在 System.Data.Common.DbDataAdapter.Update(DataTable dataTable)
在 WindowsApplication1.Form1.Button2_Click(Object sender, EventArgs e) 位置 C:\Documents and Settings\Administrator\桌面\WindowsApplication1\WindowsApplication1\Form1.vb:行号 26"

2006-09-15 12:43
小海龟
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1068
专家分:4
注 册:2006-8-1
得分:0 

有SqlCommandBuilder就可以自动生成updatecommand的呀.


[bc09] 犯强汉者,虽远比诛!
2006-09-16 15:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-89942-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.171245 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved