C# 无法将值插入SQL Server表
创建帐户时,无法插入值,错误显示主键列(C# 无法将值插入SQL Server表,c#,sql-server,C#,Sql Server,创建帐户时,无法插入值,错误显示主键列(用户ID)不允许空值。因此,插入失败 已尝试进入SQL Server表设计器更改“Is标识”,但无法保存更改 public int add() { string strConn = ConfigurationManager.ConnectionStrings["BABAFOODSConnectionString"].ToString(); SqlConnection conn = new SqlConnection(strConn);
用户ID
)不允许空值。因此,插入
失败
已尝试进入SQL Server表设计器更改“Is标识”,但无法保存更改
public int add()
{
string strConn = ConfigurationManager.ConnectionStrings["BABAFOODSConnectionString"].ToString();
SqlConnection conn = new SqlConnection(strConn);
SqlCommand cmd = new SqlCommand("INSERT INTO Patron (PatronName, PatronEmail, PatronPassword)" +
"OUTPUT INSERTED.PatronID " +
"VALUES(@name, @email, @password)", conn);
cmd.Parameters.AddWithValue("@name", PatronName);
cmd.Parameters.AddWithValue("@email", PatronEmail);
cmd.Parameters.AddWithValue("@password", PatronPassword);
conn.Open();
int id = (int) cmd.ExecuteScalar();
conn.Close();
return id;
}
在ExecuteScalar
中,我得到以下错误:
System.Data.SqlClient.SqlException:'无法将值NULL插入表'BABAFOODS.dbo.Patron'的'PatronID'列中;列不允许空值。“插入失败。”
只需在表的ID上使用自动增量
查看如错误所示:无法将值NULL插入到表“BABAFOODS.dbo.Patron”的列“PatronID”中;列不允许空值。插入失败该列被设置为非空,并且您正在尝试插入
NULL
请显示您的表定义。请确保将其设置为primary key
和identity(1,1)
不相关的提示:SqlConnection和SqlCommand都是IDisposable的,因此它们都应该使用块位于中。完成此操作后,就不需要关闭连接,因为它将在退出块时被隐式Dispose关闭。您可能需要读取。如果列未定义为identity,而是定义为not NULL
,则必须提供C代码中的值。您不能更改现有列上的标识标志-您只能创建一个定义为标识的新列,然后将其作为主键。这个答案基本上是“仅链接”。OP在SQL Server上,而不是MySQL上,因此链接甚至不相关。我解释了他的问题。这个链接是关于多类型SGBD的,在批评家面前读得更好,并且是免费的。。。