我有一个使用 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 应该是自动递增的,但我将其包含在此处,因为再次看来,我对表的更改似乎还没有建立。
炎炎设计
摇曳的蔷薇
相关分类