Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法将值插入SQL Server表_C#_Sql Server - Fatal编程技术网

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的,在批评家面前读得更好,并且是免费的。。。