【问题标题】:Problems updating a data source with data adapter update使用数据适配器更新更新数据源时出现问题
【发布时间】:2011-05-12 06:14:19
【问题描述】:

首先,我才开始使用数据库和 c#,所以我在这里可能会犯一个非常愚蠢的错误,所以提前道歉。我已连接到 SQL Server Express 数据库并且可以正常读取它,但是每当我更新我的 DataSet 以添加新列然后尝试更新数据源时,它都不会成功更新。代码如下:

        DataColumn newColumn;
        SqlCommandBuilder cmdBuild = new SqlCommandBuilder(_myAdapt);

        foreach (String s in myList)
        {
            newColumn = new DataColumn(s, System.Type.GetType("System.String"));
            _myData.Tables["Table1"].Columns.Add(newColumn);
        }

        _myAdapt.Update(_myData, "Table1");

有人对为什么这不起作用有任何建议吗?我已经对其进行了调试,并且数据集肯定会使用新列进行更新,但我似乎无法更新数据源。

感谢您的回复。

【问题讨论】:

  • 请问什么错误?您是否尝试更新数据库中实际存在的更多列?
  • 是的,我试图更新比数据库中更多的列,我有两个文本巨大的文件,我试图围绕它们创建一个新表。其中一个包含我想要映射到列的大约 700,000 个标签的列表。另一个包含大约 1500 人的测试结果,我将在添加列后批量插入。

标签: c# sql-server database dataset


【解决方案1】:

该列是否存在于数据库中(只是不存在于您的数据库中),或者您是否尝试使用数据集更改数据库中的表定义。

我不相信上面的第二个是可能的。您的数据集需要具有与您正在更新的数据库表相匹配的列结构。但是,您可以根据需要向数据集添加任意数量的行,它们将全部插入到数据库中。

如果您觉得需要在运行时向表中添加列,我建议您重新访问您的数据模型。在可能的情况下,您的列定义应该随着时间的推移保持不变,以表示您正在存储的数据实体的主要属性。

【讨论】:

  • 是的,这是我试图做的那两个中的第二个。我想我只需要重新考虑我的方法。感谢您的回答。
猜你喜欢
  • 2014-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多