首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TableAdapter UpdateCommand在JOINed表上

TableAdapter UpdateCommand在JOINed表上
EN

Stack Overflow用户
提问于 2015-01-02 14:21:06
回答 1查看 1.5K关注 0票数 1

假设我有一个DataGridView,它是从一个内容来自2个JOINed表的TableAdapter加载的,所以表C是:

代码语言:javascript
复制
SELECT A.*, B.name LEFT JOIN B ON B.id = A.b_id

我知道,向导不会为此生成UpdateCommand。但是,如果表的数据几乎完全来自表A,而表B只是为了提供表A中的id引用的数据名称,那么如果用户更改了DataGridView中的值,我是否可以提供更新表A的自己的DataGridView?

也就是说,我想将表C的UpdateCommand设置为:

代码语言:javascript
复制
UPDATE A SET value = [[new value]] WHERE id = [[current item]]

如果情况变得更糟,我可以为用户创建一个对话框,让用户输入他们的新值并这样做。就像上面说的那样,这样做似乎要简单得多。那方法有用吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-02 17:56:38

你完全可以在DataAdapter的范围内做你想做的事情。你可以找到MSDN的一个很好的演练

在没有看到代码的情况下,适配器的设置可能如下所示:

代码语言:javascript
复制
var dataAdapter = new SqlDataAdapter(
    "SELECT A.*, B.name FROM A LEFT JOIN B ON B.id = A.b_id", sqlConn);

var dataAdapter.UpdateCommand = new SqlCommand(
    "UPDATE A SET value = @Value WHERE id = @Id", sqlConn);

// Define the parameters to be used in the update command.
dataAdapter.UpdateCommand.Parameters.Add(
    "@Value", SqlDbType.NVarChar, 100, "Value_Column_Name");

dataAdapter.UpdateCommand.Parameters.Add(
    new SqlParameter("@Id", SqlDbType.Int)
    {
        SourceColumn = "Id_Column_Name"
    });
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27743627

复制
相关文章

相似问题

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