لماذا أحصل على رسالة الخطأ التالية (علماً أنني أستخدم SQL Express 2005)
اقتباسAn unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in system.data.dllAdditional information: System error.
وهذا هو الكود:
SQLconn = new SqlConnection("Server=KOBNA\\SQLEXPRESS;Database=shefa;User ID=sa;Password=111111;Trusted_Connection=False");
int new_patient_id = 0;
string insertCmd = "insert into persons (PERSON_NAME, ID_TYPE, ID_NUMBER, NATIONALITY, GENDER, DATE_OF_BIRTH, BLOOD_GROUP, COMPANY, PROFESSION, MARITAL_STATUS, OLD_FILE_NO, PERSON_IS_VIP, ADDRESS_FLAT, ADDRESS_BUILDING, ADDRESS_ROAD, ADDRESS_BLOCK, ADDRESS_AREA, ADDRESS_PO_BOX, IS_OUTSIDE_COUNTRY, ADDRESS_OUTSIDE_ADDRESS, ADDRESS_COUNTRY, CONTACT_HOME_CODE, CONTACT_HOME_TEL, CONTACT_MOBILE_CODE, CONTACT_MOBILE, CONTACT_OTHER_CODE, CONTACT_OTHER_TEL, CONTACT_OFFICE_CODE, CONTACT_OFFICE_TEL, CONTACT_OFFICE_EXT, CONTACT_DIRECT_CODE, CONTACT_DIRECT_TEL, CONTACT_HOME_FAX_CODE, CONTACT_HOME_FAX, CONTACT_OFFICE_FAX_CODE, CONTACT_OFFICE_FAX, CONTACT_OTHER_FAX_CODE, CONTACT_OTHER_FAX, EMAIL_OFFICE, EMAIL_PERSONAL) values (@fullname, @idtype, @idnumber, @nationality, @gender, @dateofbirth, @bloodgroup, @company, @profession, @maritalstatus, @oldfileno, @isvip, @address_flat, @address_building, @address_road, @address_block, @address_area, @address_box, @address_is_outside, @address_outside, @address_country, @contact_H_Tcode, @contact_H_Tnum, @contact_M_Tcode, @contact_M_Tnum, @contact_O_Tcode, @contact_O_Tnum, @contact_F_Tcode, @contact_F_Tnum, @contact_F_Text, @contact_D_Tcode, @contact_D_Tnum, @contact_H_Fcode, @contact_H_Fnum, @contact_F_Fcode, @contact_F_Fnum, @contact_O_Fcode, @contact_O_Fnum, @contact_F_Email, @contact_F_Per) set @patient_unique_id = SCOPE_IDENTITY()";
// string insertCmd = "insert into persons (PERSON_NAME, ID_TYPE, ID_NUMBER, NATIONALITY, GENDER, DATE_OF_BIRTH, BLOOD_GROUP, COMPANY, PROFESSION, MARITAL_STATUS, OLD_FILE_NO, PERSON_IS_VIP, ADDRESS_FLAT, ADDRESS_BUILDING, ADDRESS_ROAD, ADDRESS_BLOCK, ADDRESS_AREA, ADDRESS_PO_BOX, IS_OUTSIDE_COUNTRY, ADDRESS_OUTSIDE_ADDRESS, ADDRESS_COUNTRY, CONTACT_HOME_CODE, CONTACT_HOME_TEL, CONTACT_MOBILE_CODE, CONTACT_MOBILE, CONTACT_OTHER_CODE, CONTACT_OTHER_TEL, CONTACT_OFFICE_CODE, CONTACT_OFFICE_TEL, CONTACT_OFFICE_EXT, CONTACT_DIRECT_CODE, CONTACT_DIRECT_TEL, CONTACT_HOME_FAX_CODE, CONTACT_HOME_FAX, CONTACT_OFFICE_FAX_CODE, CONTACT_OFFICE_FAX, CONTACT_OTHER_FAX_CODE, CONTACT_OTHER_FAX, EMAIL_OFFICE, EMAIL_PERSONAL) values (@fullname, @idtype, @idnumber, @nationality, @gender, @dateofbirth, @bloodgroup, @company, @profession, @maritalstatus, @oldfileno, @isvip, @address_flat, @address_building, @address_road, @address_block, @address_area, @address_box, @address_is_outside, @address_outside, @address_country, @contact_H_Tcode, @contact_H_Tnum, @contact_M_Tcode, @contact_M_Tnum, @contact_O_Tcode, @contact_O_Tnum, @contact_F_Tcode, @contact_F_Tnum, @contact_F_Text, @contact_D_Tcode, @contact_D_Tnum, @contact_H_Fcode, @contact_H_Fnum, @contact_F_Fcode, @contact_F_Fnum, @contact_O_Fcode, @contact_O_Fnum, @contact_F_Email, @contact_F_Per)";
SQLcmd.CommandText = insertCmd;
SQLcmd.Connection = SQLconn;
SQLcmd.Parameters.Add("@fullname", SqlDbType.NChar);
SQLcmd.Parameters.Add("@idtype", SqlDbType.NChar);
SQLcmd.Parameters.Add("@idnumber", SqlDbType.NChar);
SQLcmd.Parameters.Add("@nationality", SqlDbType.NChar);
SQLcmd.Parameters.Add("@gender", SqlDbType.NChar);
SQLcmd.Parameters.Add("@dateofbirth", SqlDbType.DateTime);
SQLcmd.Parameters.Add("@bloodgroup", SqlDbType.NChar);
SQLcmd.Parameters.Add("@company", SqlDbType.NChar);
SQLcmd.Parameters.Add("@profession", SqlDbType.NChar);
SQLcmd.Parameters.Add("@maritalstatus", SqlDbType.NChar);
SQLcmd.Parameters.Add("@oldfileno", SqlDbType.NChar);
SQLcmd.Parameters.Add("@isvip", SqlDbType.NChar);
SQLcmd.Parameters.Add("@address_flat", SqlDbType.NChar);
SQLcmd.Parameters.Add("@address_building", SqlDbType.NChar);
SQLcmd.Parameters.Add("@address_road", SqlDbType.NChar);
SQLcmd.Parameters.Add("@address_block", SqlDbType.NChar);
SQLcmd.Parameters.Add("@address_area", SqlDbType.NChar);
SQLcmd.Parameters.Add("@address_box", SqlDbType.NChar);
SQLcmd.Parameters.Add("@address_is_outside", SqlDbType.NChar);
SQLcmd.Parameters.Add("@address_outside", SqlDbType.NText);
SQLcmd.Parameters.Add("@address_country", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_H_Tcode", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_H_Tnum", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_M_Tcode", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_M_Tnum", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_O_Tcode", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_O_Tnum", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_F_Tcode", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_F_Tnum", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_F_Text", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_D_Tcode", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_D_Tnum", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_H_Fcode", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_H_Fnum", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_F_Fcode", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_F_Fnum", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_O_Fcode", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_O_Fnum", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_F_Email", SqlDbType.NChar);
SQLcmd.Parameters.Add("@contact_F_Per", SqlDbType.NChar);
// patient_unique_id;
SQLcmd.Parameters.Add("@patient_unique_id", SqlDbType.Int);
// basic info
if (txtFullName.Text == "") SQLcmd.Parameters["@fullname"].Value = null; else SQLcmd.Parameters["@fullname"].Value = txtFullName.Text;
SQLcmd.Parameters["@idtype"].Value = cboIDType.Text;
SQLcmd.Parameters["@idnumber"].Value = txtIDNumber.Text;
SQLcmd.Parameters["@nationality"].Value = cboNationality.Text;
SQLcmd.Parameters["@gender"].Value = cboGender.Text;
SQLcmd.Parameters["@dateofbirth"].Value = cboBirthday.Value;
SQLcmd.Parameters["@bloodgroup"].Value = cboBlood.Text;
SQLcmd.Parameters["@company"].Value = cboCompany.Text;
SQLcmd.Parameters["@profession"].Value = cboProfession.Text;
SQLcmd.Parameters["@maritalstatus"].Value = cboMaritalStatus.Text;
SQLcmd.Parameters["@oldfileno"].Value = txtOldFileNo.Text;
if (chkVIP.Checked == true) SQLcmd.Parameters["@isvip"].Value = "Y"; else SQLcmd.Parameters["@isvip"].Value = "N";
// address
SQLcmd.Parameters["@address_flat"].Value = txtFlat.Text;
SQLcmd.Parameters["@address_building"].Value = txtBuilding.Text;
SQLcmd.Parameters["@address_road"].Value = txtRoad.Text;
SQLcmd.Parameters["@address_block"].Value = txtBlock.Text;
if (txtArea.Text == "") SQLcmd.Parameters["@address_area"].Value = "AA"; else SQLcmd.Parameters["@address_area"].Value = txtArea.Text;
SQLcmd.Parameters["@address_box"].Value = txtBox.Text;
if (chkOutsideAddress.Checked == true) SQLcmd.Parameters["@address_is_outside"].Value = "Y"; else SQLcmd.Parameters["@address_is_outside"].Value = "N";
if (txtOutsideAddress.Text == "") SQLcmd.Parameters["@address_outside"].Value = "AA"; else SQLcmd.Parameters["@address_outside"].Value = txtOutsideAddress.Text;
if (cboCountry.Text == "") SQLcmd.Parameters["@address_country"].Value = "AA"; else SQLcmd.Parameters["@address_country"].Value = cboCountry.Text;
// contact;
SQLcmd.Parameters["@contact_H_Tcode"].Value = txtHomeTelCode.Text;
SQLcmd.Parameters["@contact_H_Tnum"].Value = txtHomeTel.Text;
SQLcmd.Parameters["@contact_M_Tcode"].Value = txtMobileCode.Text;
SQLcmd.Parameters["@contact_M_Tnum"].Value = txtMobile.Text;
SQLcmd.Parameters["@contact_O_Tcode"].Value = txtOtherTelCode.Text;
SQLcmd.Parameters["@contact_O_Tnum"].Value = txtOtherTel.Text;
SQLcmd.Parameters["@contact_F_Tcode"].Value = txtOfficeTelCode.Text;
SQLcmd.Parameters["@contact_F_Tnum"].Value = txtOfficeTel.Text;
SQLcmd.Parameters["@contact_F_Text"].Value = txtExtension.Text;
SQLcmd.Parameters["@contact_D_Tcode"].Value = txtDirectTelCode.Text;
SQLcmd.Parameters["@contact_D_Tnum"].Value = txtDirectTel.Text;
// fax;
SQLcmd.Parameters["@contact_H_Fcode"].Value = txtHomeFaxCode.Text;
SQLcmd.Parameters["@contact_H_Fnum"].Value = txtHomeFax.Text;
SQLcmd.Parameters["@contact_F_Fcode"].Value = txtOfficeFaxCode.Text;
SQLcmd.Parameters["@contact_F_Fnum"].Value = txtOfficeFax.Text;
SQLcmd.Parameters["@contact_O_Fcode"].Value = txtOtherFaxCode.Text;
SQLcmd.Parameters["@contact_O_Fnum"].Value = txtOtherFax.Text;
SQLcmd.Parameters["@contact_F_Email"].Value = txtOfficeEmail.Text;
SQLcmd.Parameters["@contact_F_Per"].Value = txtPersonalEmail.Text;
// patient_unique_id;
SqlParameter patientIDParameter = new SqlParameter("@patient_unique_id", SqlDbType.Int);
patientIDParameter.Direction = ParameterDirection.Output;
SQLcmd.Parameters.Add(patientIDParameter);
SQLcmd.Connection.Open();
SQLcmd.ExecuteNonQuery();
new_patient_id = (int)patientIDParameter.Value;