C# 具有ISidentity和cmd.Parameters.Add的存储过程
我正在为自己创建一个ASP.NET Wiki,以跟踪我在C#和其他语言中获得的知识 我创建了一个存储过程来将一个类别插入数据库,该数据库有两个字段C_ID(int)和category(varchar 25)。在我的ASP页面中,没有C_ID字段,它会自动递增Isidentity=true 当我试图执行它时,它失败了。处理这个问题的最佳方法是什么 代码: 我是否错过了.aspx页面中要插入的内容? 尝试 {C# 具有ISidentity和cmd.Parameters.Add的存储过程,c#,asp.net,sql,stored-procedures,C#,Asp.net,Sql,Stored Procedures,我正在为自己创建一个ASP.NET Wiki,以跟踪我在C#和其他语言中获得的知识 我创建了一个存储过程来将一个类别插入数据库,该数据库有两个字段C_ID(int)和category(varchar 25)。在我的ASP页面中,没有C_ID字段,它会自动递增Isidentity=true 当我试图执行它时,它失败了。处理这个问题的最佳方法是什么 代码: 我是否错过了.aspx页面中要插入的内容? 尝试 { //create a command object identif
//create a command object identifying the Stored Procedure
SqlCommand cmd = new SqlCommand("InsertCategory", conn);
//Set the command type
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("Category", txtAddCatagory));
cmd.ExecuteNonQuery();
}
只需从插入中省略
id
。如果正确配置了identity
,数据库将负责增加该数字。例如:
GO
ALTER PROCEDURE dbo.InsertCategory(@CATEGORY varchar(25))
AS
INSERT INTO Wiki (C_Category) Values (@CATEGORY)
GO
要验证标识
设置是否正确,如果为表编写脚本,则C_id
列应如下所示:
[C_id] [int] IDENTITY(1,1) NOT NULL,
或者更好:
[C_id] [int] IDENTITY(1,1) PRIMARY KEY,
只需从插入中省略
id
。如果正确配置了identity
,数据库将负责增加该数字。例如:
GO
ALTER PROCEDURE dbo.InsertCategory(@CATEGORY varchar(25))
AS
INSERT INTO Wiki (C_Category) Values (@CATEGORY)
GO
要验证标识
设置是否正确,如果为表编写脚本,则C_id
列应如下所示:
[C_id] [int] IDENTITY(1,1) NOT NULL,
或者更好:
[C_id] [int] IDENTITY(1,1) PRIMARY KEY,
所以您得到了一个无法插入标识列的异常,对吗?诀窍是不要在insert语句中指定标识列,因为它会自动填充…;)
所以您得到了一个无法插入标识列的异常,对吗?诀窍是不要在insert语句中指定标识列,因为它会自动填充…;)
我得到了那个部分。我是否错过了要在asp页面中插入的内容?请尝试{//创建一个命令对象,标识存储过程SqlCommand cmd=new SqlCommand(“InsertCategory”,conn);//设置命令类型cmd.CommandType=CommandType.StoredProcedure;cmd.Parameters.Add(新的SqlParameter(“Category”,txtAddCatagory));cmd.ExecuteNonQuery()}@jpavlov:尝试使用
@
添加参数,如新的SqlParameter(@Category“
?我得到了那个部分。我是否错过了要在asp页面中插入的内容?请尝试{//创建一个命令对象,标识存储过程SqlCommand cmd=new SqlCommand(“InsertCategory”,conn);//设置命令类型cmd.CommandType=CommandType.StoredProcedure;cmd.Parameters.Add(新的SqlParameter(“Category”,txtAddCatagory));cmd.ExecuteNonQuery()}@jpavlov:尝试使用@
添加参数,如新的SqlParameter(@Category”
?