private void btnInsert_Click(object sender, EventArgs e)
{
empCode = txtCode.Text;
empName = txtName.Text;
empCell = txtCell.Text;
empAddress = txtAddress.Text;
try
{
using (cmd = new SqlCommand(" empInsert ", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@empcode", SqlDbType.VarChar).Value = empCode;
cmd.Parameters.Add("@empname", SqlDbType.VarChar).Value = empName;
cmd.Parameters.Add("@empcell", SqlDbType.VarChar).Value = empCell;
cmd.Parameters.Add("@empaddress", SqlDbType.VarChar).Value = empAddress;
conn.Open();
cmd.ExecuteNonQuery();
}
MessageBox.Show("succesfully inserted", "Congrates");
}
catch (Exception ex)
{
MessageBox.Show("can't Insert there is error :" + ex, "Error");
}
finally
{
conn.Close();
}
}
以下是SQL
数据库端的存储过程。
use GDK
GO
create PROCEDURE dbo.empInsert
@id as VARCHAR(10,
@name as VARCHAR(10),
@cell as VARCHAR(10),
@address as VARCHAR(20)
AS
BEGIN
INSERT INTO EmployeeRecord(empcode,empname,empcell,empaddress) VALUES( @id, @name, @cell, @address)
END
我无法在DB中INSERT
。
请在这方面提供帮助
答案 0 :(得分:1)
您在存储过程中有参数名@id
,但是您正在传递@empcode
更改
cmd.Parameters.Add("@empcode", SqlDbType.VarChar).Value = empCode;
到的
cmd.Parameters.Add("@id", SqlDbType.VarChar).Value = empCode;
答案 1 :(得分:0)
问题是您的参数名称不匹配。
来自MSDN:
使用带有SqlCommand的参数执行存储的SQL Server时 过程,添加到参数的参数的名称 集合必须与存储的参数标记的名称匹配 过程
所以这就是你所需要的:
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@id", empCode);
cmd.Parameters.AddWithValue("@name", empName);
cmd.Parameters.AddWithValue("@cell", empCell);
cmd.Parameters.AddWithValue("@address", empAddress);