首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新无法找到TableMapping[“表”或DataTable“表”

问更新无法找到TableMapping[“表”或DataTable“表”
EN

Stack Overflow用户
提问于 2014-04-29 13:34:24
回答 1查看 4.8K关注 0票数 1

我有一个名为“用户”的表,其中包含一些基本字段,如姓名、地址、城市和移动。

现在,在表单加载中,我试图显示datagridview中的所有行,如下所示:

代码语言:javascript
复制
Dim strConnection As String = "Data Source=.\sqlexpress;Initial Catalog=Customers;Integrated Security=True"
Dim con As New SqlConnection(strConnection)
con.Open()
Dim myadapter As New SqlDataAdapter
myadapter = New SqlDataAdapter("Select name, address, city and mobile from Users", con)
Dim ds As New DataSet
myadapter.Fill(ds, "Users")
UsersDataGridView.DataSource = ds.Tables(0)

在这之前一切都很顺利。

现在,我想从gridview更新字段,并尝试下面的代码,但是它给出了一个错误,如下所示:

Update unable to find TableMapping['Table'] or DataTable 'Table'.

代码语言:javascript
复制
 Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click
     Dim cmdbl As New SqlCommandBuilder(myadapter)
     myadapter.Update(ds, "Users")
 End Sub
EN

回答 1

Stack Overflow用户

发布于 2014-04-29 14:53:50

这里有几件事

1)您的示例没有显示对GetUpdateCommand()的调用

试一试:

代码语言:javascript
复制
Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click
    Dim cmdbl As New SqlCommandBuilder(myadapter)
    cmdbl.GetUpdateCommand()
    myadapter.Update(ds, "Users")
End Sub

http://msdn.microsoft.com/en-us/library/kfbedfwf(v=vs.110).aspx

2)此外,看起来SELECT命令不包括主键列。您需要这样做,以便CommandBuilder可以构建一个有效的更新或删除逗号。

我不知道您的表是什么样子,但是如果您的主键列名为ID,那么将原始sql (select语句)更改为:

代码语言:javascript
复制
myadapter = New SqlDataAdapter("Select id, name, address, city and mobile from Users", con)

3) Select命令看上去有问题。特别是“城市与移动”栏目。如果这是您的列的名称,您可能需要在它周围设置如下分隔符:

代码语言:javascript
复制
myadapter = New SqlDataAdapter("Select id, name, address, [city and mobile] from 

用户“,con)‘或者您可能打算这样说: myadapter =新SqlDataAdapter(”选择id、名称、地址、城市、从用户中移动“,con)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23366224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档