C#存储过程未将所有数据插入SQL Server表

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,

我有一个小应用程序,用户可以使用存储过程将文本框中的数据插入SQL Server表。当我在SQL Server Management Studio中运行存储过程时,它会插入参数中传递的所有数据,但当我尝试存储C#中的数据时,存储过程不会插入所有数据,但不会引发任何错误

存储过程代码如下所示:

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();