我很擅长在C#中使用存储过程。但是m无法将值完全插入数据库?
create procedure insertPro
(@name as varchar,
@lname as varchar,
@phone as varchar)
as
insert into std_info
values (@name, @lname, @phone)
go
这是我的C#代码
SqlConnection con = new SqlConnection("Data Source=xxxxxxxx;Integrated Security=SSPI;Initial Catalog=xxxxx");
SqlCommand cmd = new SqlCommand("insertPro",con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = textBox1.Text;
cmd.Parameters.Add("@lname", SqlDbType.VarChar).Value = textBox2.Text;
cmd.Parameters.Add("@phone", SqlDbType.VarChar).Value = textBox3.Text;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
这个插入数值到数据库但不完全是例如,如果我将第一个名称作为abc插入然后它只插入一个和相同的姓氏和电话?
答案 0 :(得分:3)
在参数上加上一个长度:
create procedure insertPro(
@name as varchar(30),
@lname as varchar(30),
@phone as varchar(30)
答案 1 :(得分:1)
将存储过程更改为:
create procedure insertPro
(
@name as varchar(max), //change (max) to maximum constraint length you set for each column
@lname as varchar(max),
@phone as varchar(max)
)
as
insert into std_info values (@name,@lname,@phone)
答案 2 :(得分:1)
@name as varchar
因此使用简单的varchar
而不指定任何长度。它只需要单个字符。这就是为什么你在桌子上只看到一个角色的原因。您只需要指定它们的长度等于列的长度。
@name as varchar(100)