首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

执行TableAdapter.Update后无法保存数据到数据库解决方案

2012-03-17 
执行TableAdapter.Update后无法保存数据到数据库执行TableAdapter.Update后无法保存数据到数据库下面这段

执行TableAdapter.Update后无法保存数据到数据库
执行TableAdapter.Update后无法保存数据到数据库
下面这段程序是
 Private Sub save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles save.Click
  If Me.Validate Then
  Try
  Me.管理系统BindingSource.EndEdit()
  Me.管理系统TableAdapter.Update(Me.管理系统DataSet.管理系统) 
  MessageBox.Show("Update Successful!")
  Catch ex As Exception
  MessageBox.Show("Update failed")
  End Try
  End If
  End Sub
请高手指教

[解决办法]
[code=VB.NET][/code]
dim dt as DataTable = New DataTable
dt = Me.管理系统DataSet.管理系统
Me.管理系统TableAdapter.Update(dt)
可以根据智能感应找到错误并改正。
[解决办法]
如果你能做到以下几步,对ado.net就算入门了
1\要有一个数据库,而且能建立数据库连接
2\建立一个数据适配器,一个数据集(当然也可以是一个内存表),然后填充数据集或(内存表)
dim ds as new dataset 或dim tb as new datatable
Dim adapter As SqlDataAdapter = New SqlDataAdapter( _
"SELECT * FROM dbo.Customers", connection)

adapter.fill(ds,"Table1")或 adapter.fill (tb)

3\最简单的测试是在窗体上添加一个datagridview控件
4\让datagridview控件绑定数据表
datagridview1.datasource=ds.tables("Table1") 或datagridview1.datasource=tb
5\ 如果能看到数据库中表的内容,就成功了一小半
6\datagridview控件提供了一些数据编辑的功能,你可以增加或修改数据,其实只是改了数据集中的表
7\你所做的修改并没有保存,要提交所做的更改,必须使用据修改语句,你可以一行一行的用循环提交你所
做的修改,当然也可以使用ADO.NET提供的批量修改方法,从ADO转过来的人可能会使用前者,而一个对数据操作
熟练的人会使用后者
8\使用commandBuilder类对数据适器生成增,删,改命令,当然也可以手动生成增,删,改命令,而且功能要比自动生成的要强大得多,如果你对ADO.NET的理解理深该的话
Dim builder As SqlCommandBuilder = New SqlCommandBuilder(adapter)
builder.QuotePrefix = "["
builder.QuoteSuffix = "]"

9\提交修改
adapter.update(ds) 也可以是 adapter.update(ds.tables("Table1")) 也可以是
adapter.update(tb)
10\如果是文本框,那只是修改表中的一行,原理一样,先进行数据绑定,
自己多试试,多看看MSDN上的关于ADO.NET的说明

[解决办法]
出错信息很重要,你的Catch ex As Exception后面的MessageBox.Show("Update failed")无法看到出错信息。改为:MessageBox.show(ex.message),看看出错信息是什么再判断原因。

热点排行