【问题标题】:Can't lengthen a field in a dataset无法延长数据集中的字段
【发布时间】:2021-10-05 08:57:34
【问题描述】:

我有一个用于 Windows 窗体项目的数据集税。 'tax_id' int64 主键,'Tax' 字符串 20 chr,'type' 字符串 2,它用于表单。然后我发现我需要将类型更改为 5 个字符。所以我在 sql 数据库中执行此操作,并在属性的数据集中将 MaxLength 从 2 个字符更改为 5 个字符。现在,当我在表单上保存更改时,它只保存前 2 个字符。为什么?我如何让它保存所有 5 个字符。

这是代码,

TaxDataTableAdapters.TaxTableAdapter taxConnect = new TaxDataTableAdapters.TaxTableAdapter();
taxConnect.UpdateTaxData(taxTextBox.Text, typeTextBox.Text, Convert.ToInt64(tax_idTextBox.Text));

代码只保存typeTextBox.Text的前两个字符。更改数据库和数据集后,现在是 5 个字符长。

【问题讨论】:

  • 请显示您遇到问题的代码。
  • 参见上面的示例代码。

标签: c# visual-studio dataset


【解决方案1】:

根据我的测试,我重现了您的问题。我发现即使将 maxlength 更改为 5,我也只能将前 2 个字符保存到数据库中。

经过我的尝试,我找到了解决它的方法。

首先,请将数据库表中的更新字段更改为 nvarchar(5)。

那么,请重新添加数据集。

最后,我可以使用相同的代码来获取正确的数据。

 TestDataSetTableAdapters.TaxesTableAdapter adapter = new TestDataSetTableAdapters.TaxesTableAdapter();
 adapter.UpdateQuery(1001, "test", "t9999", 1001, "test", "t6");

【讨论】:

  • 我发现我可以读取数据集来纠正问题(只需删除 tabaleadapter 并重新输入它),但这是在一个大程序中。我在这个数据集中有 50 个查询,上面显示的一个是一个。我希望有一个不需要再次添加数据集的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-07
  • 1970-01-01
  • 1970-01-01
  • 2015-02-27
相关资源
最近更新 更多