【问题标题】:How to get Dataset table to generate the insert statment .(sql ce3.5 and Dataset with visual studio 2010 express )如何获取 Dataset 表以生成插入语句。(sql ce 3.5 和 Dataset with visual studio 2010 express)
【发布时间】:2012-05-16 01:16:52
【问题描述】:

我能够在使用 sql ce 3.5 的 c#visual studio 2010 express 项目中为 ce 3.5 数据库表的数据集的文件查询的插入语句生成更新语句。

但是我得到了运行时错误: 使用新行传递 DataRow 集合时,更新需要有效的 InsertCommand 来自

  myTblAdaptor.Update(myTbl)

我确实让填充方法生成所有更新语句并直接生成数据库....但我似乎无法找到 myTblAdaptor.Insert。实际上向导结果并没有列出 Insert 语句。不知道为什么。 sql 是 SELECT [category], [Value], [seq] FROM [favorite]

所以我尝试通过在数据集设计图面上向 myTbl 添加一个插入查询来创建一个。生成 Insert1 方法。

然后我尝试通过

添加 InsertMethod

右键单击数据集表面,选择视图代码,

然后在文件末尾添加:

namespace myappNS.myDSTableAdapters
{
public partial class myTblAdapter
{
    public int Insert(string category, string value, int? seq)
    {
        return Insert1(category, value, seq);
    }
}
}

我还尝试查看是否可以手动将 InsertCommand 定义到适配器,但找不到。

我能做什么?

提前感谢您的帮助。

【问题讨论】:

  • 我也试过 myTblAdapter.Adapter.InsertCommnad = new SqlCeCommand("insert into myTbl values(@category,@Value,@seq)", favoriteAdapter);但是,除了 myTblAdapter.Update(myTbl) 上的“查询中的列数和表必须匹配。[查询中的列数 = 3,表中的列数 = 4]”外,我得到了“奖励”;

标签: insert tableadapter


【解决方案1】:

我的错误,我应该在未生成插入语句或列数不匹配的主查询中找到。这只是意味着数据库表定义不同于数据集的定义或主查询!

因此要修复错误,请从 dataqset 中删除表,然后将数据库表从 DataExporer 拖放到数据集设计图面上

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    相关资源
    最近更新 更多