我必须插入字段值,而不是作为主键的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.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
cmd.Parameters.Add("@id");
//删除此- 删除
ALTER PROCEDURE dbo.Employeetl
中的@id - 删除插入
INSERT INTO EmployeeDB(EmpName, . . . )
中的id
需要两次更改
-
将值传递给代码中的
@id
参数cmd.Parameters.Add("@id", SqlDbType.Int).Value = xxx;
-
更改存储过程以更新INSERT命令
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
更改存储过程
// SQL Server stored procedure
alter storedprocedure employeedtl (
@id int = null,
@empname nvarchar(50) = null,
.
.
.
)
// in .Net remove this line
cmd.Parameters.Add("@id");