【发布时间】:2017-04-01 08:35:52
【问题描述】:
enter image description hereenter image description here我面临一个问题,我已经发布了存储过程、c# 代码以及在将数据插入数据库时发生的错误。我需要一个解决方案
string dataString = @"Data Source=DESKTOP-E5V2JHG;Initial catalog=hospital_management;Integrated Security=SSPI";
SqlConnection connect = new SqlConnection(dataString);
connect.Open();
SqlCommand cmd = new SqlCommand("Add_doctor", connect);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = textBox1.Text;
cmd.Parameters.Add("@LastName", SqlDbType.VarChar).Value = textBox2.Text;
cmd.Parameters.Add("@ContactNo", SqlDbType.Decimal).Value = Convert.ToDecimal(textBox3.Text);
cmd.Parameters.Add("@EmailId", SqlDbType.VarChar).Value = textBox4.Text;
cmd.Parameters.Add("@GenderId", SqlDbType.Int).Value = Convert.ToInt32(comboBox1.SelectedText);
cmd.Parameters.Add("@Nationality", SqlDbType.VarChar).Value = textBox5.Text;
cmd.Parameters.Add("@salary", SqlDbType.Int).Value = Convert.ToInt32(textBox7.Text);
cmd.Parameters.Add("@DOB", SqlDbType.DateTime2).Value = dateTimePicker1;
cmd.Parameters.Add("@shiftId", SqlDbType.Int).Value = Convert.ToInt32(comboBox3.SelectedText);
cmd.Parameters.Add("@qualification", SqlDbType.VarChar).Value = textBox9.Text;
cmd.Parameters.Add("@Address", SqlDbType.VarChar).Value = textBox10.Text;
cmd.Parameters.Add("@HireDate", SqlDbType.DateTime2).Value = dateTimePicker2;
cmd.Parameters.Add("@Pass", SqlDbType.VarChar).Value = textBox8.Text;
cmd.Parameters.Add("@Religion", SqlDbType.VarChar).Value = textBox6.Text;
cmd.Parameters.Add("@specId", SqlDbType.Int).Value = Convert.ToInt32(comboBox2.SelectedText);
cmd.ExecuteNonQuery();
MessageBox.Show("Command Executed");
connect.Close();
这是在c#中
Create Proc AddDoctor
@EMPtypeID VARCHAR(50),
@FirstName VARCHAR(50),
@LastName VARCHAR(50),
@ContactNo INT,
@EmailId VARCHAR(50),
@GenderId INT,
@Nationality VARCHAR(50),
@salary INT,
@DOB DATETIME2,
@shiftID INT,
@qualification VARCHAR(50),
@Address VARCHAR(50),
@HireDate DATETIME2,
@Pass VARCHAR(50),
@Religion VARCHAR(50),
@specId INT
AS
BeGIN
insert into EMPLOYEES (_EMPtypeID,_FirstName,_LastName,_ContactNo,_EmailId,
_GenderId,_Nationality,_salary,_DOB,_ShiftId,_qualification,
_Address,_HireDate,_Password,_Religion,_specialityId)
values (@EMPtypeID,@FirstName,@LastName,@ContactNo,@EmailId,
@GenderId,@Nationality,@salary,@DOB,@shiftID,@qualification,
@Address,@HireDate,@Pass,@Religion,@specId);
END
这是数据库中的存储过程
【问题讨论】:
-
但是错误在哪里?
-
您是否可能需要执行 ALTER 而不是 CREATE?发布带有下划线单词的代码图片并不能真正指出具体问题。
-
HireDate 或 DOB 的字符串可能是 SQL 无法识别的格式
-
那么它的正确数据类型应该是什么?
标签: c# sql sql-server stored-procedures