2011-04-07 26 views
1

hii在sql数据库中更改列后应该做什么更改?

它是我第一次在c#中使用数据库。我正在尝试将数据库添加到Visual Studio C#中,读取数据并将数据保存到数据库。

所以我创建了一个数据库和一个名为“Users”的表格。然后我将窗体窗体连接到数据库。

之后,它在检索数据(查询:所有用户)工作得很好,但我已经从日期时间编辑了一列类型为int后,,它给了我一个异常“约束的例外是在下面的行

this.usersTableAdapter.Fill(this.smartHomeDataSet.Users); 
未处理

和形式dosent负载在所有。!!

所以我想有件事我必须做的,我一定要对数据库表所做的更改,因此它可以被应用到我的应用程序后。

它可能是简单而明快的但是,请原谅我第一次使用数据库。

感谢您的帮助,全部。

编辑:

我做什么,在表中定义

编辑栏(出生日期),它是:日期时间 - 不是允许为空

改为:INT - 允许为空

回答

2

您不需要重新生成数据集。按照步骤更新您的数据集。

1.)转到输入数据集设计器。右键单击TableAdapter标题并选择配置选项。这将启动表格适配器配置向导。

2.)通常完成向导并更新查询设计器步骤中的字段。这是它将添加新颜色并删除未在查询结果集中找到的颜色的位置。

3.)完成向导后,您将很快观察到新字段已添加到对应的数据表中。这也将确保所有TableAdapter方法的结果集也被更新,并且您不需要单独更改每个方法。我们已经做了很多次了,而且总是能够正常工作。

4.)只有您需要手动执行的操作是从DataTable中删除色彩,以防从查询中删除字段。该向导将更新并添加颜色,但不会从DataTable中删除颜色。简单地说,只需继续并从DataTable中删除色彩即可。

你完成了。

+0

好吧我现在就试试 – Waleedoo 2011-04-07 15:44:50

+0

我做了你告诉我的,,正如你在完成向导后所说的,TableAdapter的相应表格已被编辑,但是现在我有两个字段出生日期和出生日期1,旧列和我编辑的一个!我怎么能删除旧的!?尽管在qurey builder的向导中,我已经执行了它,它只显示一个出生日期,并且没有错误。但是当我运行程序时,仍然是同样的问题。谢谢你的帮助 – Waleedoo 2011-04-07 15:57:40

+0

我找到了。在数据集中,我从users表中选择了列(出生数据)(旧数据)并按下删除。而已。谢谢你的帮助 – Waleedoo 2011-04-07 16:07:13

-1

看起来您正在使用强类型数据集和表适配器。如果是这种情况,那么如果更改数据库列,则需要重新生成数据集(或手动更改它们)。

+0

我正在使用Visual Studio 2008 Team System版本,与SQL Server 2005 – Waleedoo 2011-04-07 15:28:00

+0

哇。向正确的答案投下赞成票。这是第一个。 :) – 2011-04-11 13:34:03

0

嗯,我想你已经改变了数据集中列的数据类型。

但异常可能是由于将null值设置为AllowNull设置为false的数据表列中。你是否改变了db中列的nullable属性?如果是这样,请更改AllowNull

+0

我做了什么,正在编辑表格定义中的列(date of birth): – Waleedoo 2011-04-07 15:25:10

+0

原因是:dateTime - 不允许NULL 改为:int - allowNull – Waleedoo 2011-04-07 15:25:48

相关问题