C# 具有ISidentity和cmd.Parameters.Add的存储过程

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

我正在为自己创建一个ASP.NET Wiki,以跟踪我在C#和其他语言中获得的知识

我创建了一个存储过程来将一个类别插入数据库,该数据库有两个字段C_ID(int)和category(varchar 25)。在我的ASP页面中,没有C_ID字段,它会自动递增Isidentity=true

当我试图执行它时,它失败了。处理这个问题的最佳方法是什么

代码:

我是否错过了.aspx页面中要插入的内容? 尝试 {

            //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”