C#存储过程未将所有数据插入SQL Server表
我有一个小应用程序,用户可以使用存储过程将文本框中的数据插入SQL Server表。当我在SQL Server Management Studio中运行存储过程时,它会插入参数中传递的所有数据,但当我尝试存储C#中的数据时,存储过程不会插入所有数据,但不会引发任何错误 存储过程代码如下所示:C#存储过程未将所有数据插入SQL Server表,c#,sql-server,C#,Sql Server,我有一个小应用程序,用户可以使用存储过程将文本框中的数据插入SQL Server表。当我在SQL Server Management Studio中运行存储过程时,它会插入参数中传递的所有数据,但当我尝试存储C#中的数据时,存储过程不会插入所有数据,但不会引发任何错误 存储过程代码如下所示: create procedure [dbo].[insertpatient] @name varchar(50) = null, @surname varchar (50) = null,
create procedure [dbo].[insertpatient]
@name varchar(50) = null,
@surname varchar (50) = null,
@placeb varchar (200) = null,
@adress varchar(100) = null,
@nrid varchar (50) = null,
@birthdt varchar (100) =null,
@statut varchar(50) = null,
@gender varchar(50) = null,
@sympt varchar(max) = null,
@ta varchar(50) =null,
@t varchar(50) = null,
@glikemy varchar(50) = null,
@diagnosis varchar(200) = null,
@terapy varchar(max) = null,
@note varchar(max) = null,
@date datetime = null,
@other varchar (50) = null,
@report varchar (max) = null
as
begin
insert into tbl_pacientet (Name, Surnamei, BirthP, Adress, NrID, Birthdate,
Statut, Gender, Symptoms, TA, T, Glikemy, Diagnosis,
Terapy, Note, Date, Other, Report)
values (@name, @surname, @placeb, @adress, @nrid, @birthdt,
@statut, @gender, @sympt, @ta, @t, @glikemy, @diagnosis,
@terapy, @note, @date, @other, @report)
end
C#代码
有人能帮我一下吗,告诉我为什么数据没有从文本框全部插入到SQL Server表,只是其中的一部分。也没有任何异常错误。谢谢大家 删除
cmd.Parameters.AddWithValue(“@terapiy”,txtterapy.Text”)行terapy
中的i
代码>我删除了,还是同样的问题。没有出现错误,但并非所有数据都插入将默认值(如@name varchar(50)=null
)输入到存储的进程中会发生类似的问题。如果您打算使用所有参数调用它,它不应该有默认值。您应该签出并停止使用.AddWithValue()
-这可能会导致意外的结果…最坏的情况是,您可以在服务器上运行跟踪以查看正在运行的确切命令。或者调试应用程序并查看每个参数的值。但是我非常同意@marc_的观点,你应该使用.Add(…).Value=
而不是.AddWithValue(…)
。后者的问题包括类型推断等。
SqlConnection conn = new SqlConnection("Server = localhost;Database = medsoft; Integrated Security = true");
conn.Open();
SqlCommand cmd = new SqlCommand("insertpatient", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@name", txtemri.Text);
cmd.Parameters.AddWithValue("@surname", txtmbiemri.Text);
cmd.Parameters.AddWithValue("@placeb", txtvendlindja.Text);
cmd.Parameters.AddWithValue("@adress", txtadresa.Text);
cmd.Parameters.AddWithValue("@nrid", txtpersonal.Text);
cmd.Parameters.AddWithValue("@birthdt", txtdite.Text);
cmd.Parameters.AddWithValue("@statut", cmbstatut.SelectedText);
cmd.Parameters.AddWithValue("@gender", rbm.Text);
cmd.Parameters.AddWithValue("@sympt", txtsympt.Text);
cmd.Parameters.AddWithValue("@ta", txtta.Text);
cmd.Parameters.AddWithValue("@t", txtt.Text);
cmd.Parameters.AddWithValue("@glikemy", txtglikemy.Text);
cmd.Parameters.AddWithValue("@diagnosis", txtdiagno.Text);
cmd.Parameters.AddWithValue("@terapiy", txtterapy.Text);
cmd.Parameters.AddWithValue("@note", txtshenime.Text);
cmd.Parameters.AddWithValue("@date", DateTime.Now);
cmd.Parameters.AddWithValue("@other", txtother.Text);
cmd.Parameters.AddWithValue("@report", txtreport.Text);
cmd.ExecuteNonQuery();
conn.Close();