내 BloodType 콤보 상자 속성 모음입니다. O, A 및 C 인 3 가지 값이 있습니다. 그러나 원하는 값의 옵션을 선택한 후 제출을 클릭하면이 오류가 발생합니다.콤보 박스의 값을 데이터베이스에 추가하는 방법은 무엇입니까?
매개 변수화 된 쿼리 '(@pFirstName의 NVARCHAR (5), @의 pLastName의 NVARCHAR (6), @ pContact nvarch'매개 변수 '@pBloodType'공급되지 않은 것으로 기대하고있다. 내가 사용하는 경우가 작동합니다
대신 내 블러드위한 텍스트 상자 전에 내 텍스트 상자 코드에 대한
updateCmd.Parameters.AddWithValue ("@의 pBloodType", txtpBloodType.Text).. 콤보 상자 코드에 대한
내가 사용하고 지금.
updateCmd.Parameters.AddWithValue ("@pBloodType", cbpBloodType.SelectedValue);
정지 기준은 개체의 인스턴스로 설정되지 개체.
public patient()
{
InitializeComponent();
this.cbpBloodType = new System.Windows.Forms.ComboBox();
this.cbpBloodType.Items.Add("O");
this.cbpBloodType.Items.Add("A");
this.cbpBloodType.Items.Add("C");
}
private int AddPatientRecord()
{
int result = 0;
// TO DO: Codes to insert customer record
//retrieve connection information info from App.config
string strConnectionString = ConfigurationManager.ConnectionStrings["SACPConnection"].ConnectionString;
//STEP 1: Create connection
SqlConnection myConnect = new SqlConnection(strConnectionString);
//STEP 2: Create command
String strCommandText = "INSERT PATIENT(pFirstName, pLastName, pContact, pAddress, pCity, pZip, pNationality, pRace, pIC, pGender, pDOB, pBloodType, pEmail) "
+ " VALUES (@pFirstName,@pLastName,@pContact,@pAddress,@pCity,@pZip,@pNationality, @pRace, @pIC, @pGender, @pDOB, @pBloodType, @pEmail)";
SqlCommand updateCmd = new SqlCommand(strCommandText, myConnect);
updateCmd.Parameters.AddWithValue("@pFirstName", txtpFirstName.Text);
updateCmd.Parameters.AddWithValue("@pLastName", txtpLastName.Text);
//updateCmd.Parameters["@clientid"].Direction = ParameterDirection.Output;
updateCmd.Parameters.AddWithValue("@pContact", txtpContact.Text);
updateCmd.Parameters.AddWithValue("@pAddress", txtpAddress.Text);
updateCmd.Parameters.AddWithValue("@pCity", txtpCity.Text);
updateCmd.Parameters.AddWithValue("@pZip", txtpZip.Text);
updateCmd.Parameters.AddWithValue("@pNationality", txtpNationality.Text);
updateCmd.Parameters.AddWithValue("@pRace", txtpRace.Text);
updateCmd.Parameters.AddWithValue("@pIC", txtpIC.Text);
if (rbMale.Checked)
{
updateCmd.Parameters.AddWithValue("@pGender", "M");
}
else
{
updateCmd.Parameters.AddWithValue("@pGender", "F");
}
updateCmd.Parameters.AddWithValue("@pDOB", dtppDOB.Value);
string value = cbpBloodType.SelectedItem == null ? "A" : cbpBloodType.SelectedItem.ToString();
updateCmd.Parameters.AddWithValue("@pBloodType", value);
updateCmd.Parameters.AddWithValue("@pEmail", txtpEmail.Text);
// STEP 3 open connection and retrieve data by calling ExecuteReader
myConnect.Open();
// STEP 4: execute command
// indicates number of record updated.
result = updateCmd.ExecuteNonQuery();
// STEP 5: Close
myConnect.Close();
return result;
}
당신이'updateCmd.Parameters.AddWithValue ("@의 pBloodType"를 사용하여 시도해야 , cbpBloodType.SelectedValue.ToString()); 값에서 ToString() 메서드를 호출합니까? – AssaultingCuccos
코드를 실행할 때 cbpBloodType 및 cbpBloodType.SelectedValue가 존재하는지 디버거에서 체크 했습니까? – Plue