C# Sqlparameter应该被指定为异常,如果我这样指定,就会违反主键约束异常
我必须插入字段值,但不能插入作为主键的id并设置标识(1,1)。存储过程也添加在底部C# Sqlparameter应该被指定为异常,如果我这样指定,就会违反主键约束异常,c#,asp.net,sql-server-2008,C#,Asp.net,Sql Server 2008,我必须插入字段值,但不能插入作为主键的id并设置标识(1,1)。存储过程也添加在底部 protected void save_click(object sender, EventArgs e) { con = new SqlConnection(s); con.Open(); cmd = new SqlCommand("employeedtl", con); cmd.CommandType = CommandType.StoredP
protected void save_click(object sender, EventArgs e)
{
con = new SqlConnection(s);
con.Open();
cmd = new SqlCommand("employeedtl", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@empname", SqlDbType.VarChar).Value = TextBox1.Text;
cmd.Parameters.Add("@empid", SqlDbType.Int).Value = int.Parse(TextBox2.Text);
cmd.Parameters.Add("@empage", SqlDbType.Int).Value = int.Parse(TextBox3.Text);
cmd.Parameters.Add("@empaddress", SqlDbType.VarChar).Value = TextBox4.Text;
cmd.Parameters.Add("@empjoindate", SqlDbType.VarChar).Value = TextBox5.Text;
cmd.Parameters.Add("@empproject", SqlDbType.VarChar).Value = TextBox6.Text;
cmd.Parameters.Add("@empmobile", SqlDbType.BigInt).Value = Int64.Parse(TextBox7.Text);
cmd.Parameters.Add("@empemail", SqlDbType.VarChar).Value = TextBox8.Text;
cmd.Parameters.Add("@select", SqlDbType.Int).Value = 1;
cmd.Parameters.Add("@id");
cmd.ExecuteNonQuery();
Label1.Text = "Inserted Successfully";
con.Close();
bindGrid(GridView1);
}
ALTER procedure [dbo].[employeedtl](@select int,@empid int,@empname varchar(50),@empage int,@empaddress varchar(max),@empjoindate varchar(50),@empproject varchar(50),@empmobile bigint,@empemail varchar(max))
as
begin
if @select=1
begin
if Exists(select * from EmployeeDB where Empid=@empid)
begin
update EmployeeDB set [EmpId]=@empid,[EmpName]=@empname,[EmpAge]=@empage,[EmpAddress]=@empaddress,[EmpJoin]=@empjoindate,[EmpProj]=@empproject,[EmpMobile]=@empmobile,[EmpEmail]=@empemail where Empid=@empid
end
else
begin
insert into EmployeeDB(EmpId,EmpName,EmpAge,EmpJoin,EmpAddress,EmpProj,EmpMobile,EmpEmail) values(@empid,@empname,@empage,@empaddress,@empjoindate,@empproject,@empmobile,@empemail)
end
end
else if @select=2
begin
delete from EmployeeDB where EmpId=@empid
end
end
更改存储过程
// SQL Server stored procedure
alter storedprocedure employeedtl (
@id int = null,
@empname nvarchar(50) = null,
.
.
.
)
// in .Net remove this line
cmd.Parameters.Add("@id");
更改存储过程
// SQL Server stored procedure
alter storedprocedure employeedtl (
@id int = null,
@empname nvarchar(50) = null,
.
.
.
)
// in .Net remove this line
cmd.Parameters.Add("@id");
cmd.Parameters.Add(“@id”)代码>//删除此
ALTER过程dbo.Employeetl中的@id
insert INTO EmployeeDB(EmpName,…)中的id
cmd.Parameters.Add(“@id”)代码>//删除此
ALTER过程dbo.Employeetl中的@id
insert INTO EmployeeDB(EmpName,…)中的id
@id
参数
cmd.Parameters.Add("@id", SqlDbType.Int).Value = xxx;
INSERT INTO EMPTable(id,empname,empid,empage,empaddress,empjoindate,empproject,empmobile,empemail,select) values (@empname,@empid,@empage,@empaddress,@empjoindate,@empproject,@empmobile,@empemail,@select)
-------^
从INSERT中删除此ID列及其值@ID
@id
参数
cmd.Parameters.Add("@id", SqlDbType.Int).Value = xxx;
INSERT INTO EMPTable(id,empname,empid,empage,empaddress,empjoindate,empproject,empmobile,empemail,select) values (@empname,@empid,@empage,@empaddress,@empjoindate,@empproject,@empmobile,@empemail,@select)
-------^
从INSERT中删除此ID列及其值@ID
无法将值NULL插入表“keshav.dbo.EmployeeDB”的列“id”中;列不允许空值。将finsert插入keshav.dbo.EmployeeDB(empname、empid、empage、empaddress、empjoindate、empproject、empmobile、empMail、select)值(@empname、@empid、@empage、@empaddress、@empjoindate、@empproject、@empmobile、@select)从插入查询中删除自动递增id的id不能将值NULL插入列“id”,表“keshav.dbo.EmployeeDB”;列不允许空值。将finsert插入keshav.dbo.EmployeeDB(empname、empid、empage、empaddress、empjoindate、empproject、empmobile、empMail、select)值(@empname、@empid、@empage、@empaddress、@empjoindate、@empproject、@empmobile、@select)从id的insert queryremove参数中删除作为自动增量id的id,并相应地在insert queryPost上公布问题中存储过程的代码text@PanagiotisKanavosdoneremove id的参数,并相应地在insert queryPost上插入问题中存储过程的代码text@PanagiotisKanavos完成