为了账号安全,请及时绑定邮箱和手机立即绑定

对 SQL Server 表的更改似乎没有在 Visual Studio 中构建

对 SQL Server 表的更改似乎没有在 Visual Studio 中构建

C#
白猪掌柜的 2022-01-16 15:17:43
我有一个使用 Visual Studios 2017 的 C# 前端到 SQL Server 后端。当我最初在数据库中创建我的表时,它是:CREATE TABLE [dbo].[tblHazard_Reports](    [Id] INT PRIMARY KEY,    [Badge] INT NOT NULL,    [Full Name] VARCHAR NOT NULL)从那以后,我将其更改为CREATE TABLE [dbo].[tblHazard_Reports](    [Id] INT IDENTITY(1, 1) PRIMARY KEY,     [Badge] INT,    [Full Name] VARCHAR(MAX))但是,当我运行我的SQLcmd.ExecuteNonQuery()语句时,我会得到列不允许 NULL 或字符串或二进制数据将被截断的错误。尽管我项目中的所有内容似乎都表明我对列进行了更改,但我得到的错误就像我从未接触过它一样。我在网上寻找在 Visual Studio 中放置正确 ALTER 语句的地方,但我找不到任何东西。如何重建我的表以反映我所做的更改?这是我的 C# 代码,以防万一。private void InsertHazardItem(E3_Project.HazardItem currHaz){    using(SqlConnection cnn = new SqlConnection("connectionString"))    {        string commandString = "INSERT INTO tblHazard_Reports([ID], [Badge],             [Full Name]) VALUES(@ID, @Badge, @Name)";        using(SqlCommand command = new SqlCommand(commandString, cnn))        {            var parameterID = new SqlParameter("@ID",  System.Data.SqlDbType.Int);            var parameterBadge = new SqlParameter("@Badge",  System.Data.SqlDbType.Int);            var parameterName = new SqlParameter("@Name", System.Data.SqlDbType.VarChar);            parameterID.Value = currHaz.ID;            parameterBadge.Value = currHaz.Badge;            parameterName.Value = currHaz.Name;            command.Parameters.Add(parameterID);            command.Parameters.Add(parameterBadge);            command.Parameters.Add(parameterName);            cnn.Open()            command.ExecuteNonQuery(); //The error is always on this line        }    }}请注意,ID 应该是自动递增的,但我将其包含在此处,因为再次看来,我对表的更改似乎还没有建立。
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

由于您将 ID 列定义为 IDENTITY 列,因此数据库会在您插入行时负责设置该值。尝试从 INSERT 语句中删除 ID 列,它应该可以工作。

未经请求的提示:如果您的列名中不包含空格,您和曾经使用过您的数据库的每个人都会更快乐。[Full Name] 最好是 FullName。


查看完整回答
反对 回复 2022-01-16
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

必须在代码中完成对表的更改。就我而言,我最终使用 C# 和 ExecuteNonQuery 来执行此操作,如此处所示。

甚至新表也必须用代码创建并直接用代码执行。使用 Visual Studio 工具向我的数据库添加新表似乎并没有实际显示和使用。


查看完整回答
反对 回复 2022-01-16
  • 2 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信