2014-03-31 2 views
0

나는 C# WF로 응용 프로그램을 개발하려고합니다. MS SQL 데이터베이스에 직원 테이블을 만들었습니다. 성 (남성과 여성)을위한 두 개의 라디오 버튼이 있습니다. 사용자가 라디오 버튼 (남성 또는 여성)을 클릭하는 방법에 따라 두 개의 라디오 버튼 중 하나를 삽입 할 수있는 SQL 문을 작성하고 싶습니다. 콤보 박스에도 똑같이 적용됩니다. 사용자가 콤보 박스에서 데이터 선택을 선택하면 데이터를 테이블에 저장하려고합니다. 나는 그 질문을 봤고, 올바른 것이 아니었다. 2 월 7 일에 여기에 게시 된 사람이 있습니다. 질문에 답을 얻지 못했습니다. 콤보 박스 코드를 작성하는 방법을 모릅니다.라디오 버튼과 콤보 박스에서 MS Sql의 테이블에 데이터를 삽입하는 방법

("INSERT INTO Employeess(EmpID,FirstName,LastName,Salary,desgnation,gender) 
         values ('" + textBox1.Text + "','" + 
            textBox2.Text + "','" + 
            textBox3.Text + "','" + 
            textBox4.Text + "','" + 
            textBox5.Text + "','" + 
            **radioButton1.Checked+"'**)"); 

어떤 도움을 주셔서 감사합니다.

+1

'성별'의 열 데이터 유형은 무엇입니까? – Damith

+0

사용자 DB에 저장할 플래그/ID .... –

+0

열 데이터 형식이 varchar (6)입니다. – kkcoder

답변

0

시도하지 않았기 때문에

. sqlcommand.paramemters.addwithvalue와 함께 사용하고 있습니다. 솔루션을 검색했을 때, 나는 이전의 코딩이 SQL injection에 대해 vlunerable하다는 것을 알게되었습니다. 도움을 주셔서 감사합니다. 아래 텍스트 상자, 콤보 박스 및 라디오 버튼에서 데이터베이스에 데이터를 저장하기위한 완벽한 코드입니다.

private void btnSave_Click(object sender, EventArgs e) 
    { 

     try 
     { 


      DataValidateAndDateFormat(); 

      string strGender; 
      string strConnectionString = @"Data Source = KK\SQLEXPRESS; Integrated Security = SSPI; Initial Catalog = JeanDB"; 

      SqlConnection cn = new SqlConnection(strConnectionString); 
      cn.Open(); 

      string strEmpID = txtEmpID.Text.Trim(); 
      string strFirstName = txtFirstName.Text.Trim(); 
      string strLastName = txtLastName.Text.Trim(); 
      string strDesignation = txtDesignation.Text.Trim(); 
      int iSalary = Convert.ToInt32(txtSalary.Text.Trim()); 
      string strAddress = txtAddress.Text.Trim(); 
      int iZipCode = Convert.ToInt32(txtZipCode.Text.Trim()); 
      int iPhone = Convert.ToInt32(txtPhone.Text.Trim()); 
      string strEmail = txtEmail.Text.Trim(); 
      DateTime dtDOB = dtPickerDOB.Value; 
      string strNationality = comboNationality.SelectedItem.ToString(); 

      if (rbMale.Checked) 
       strGender = "Male"; 
      else 
       strGender = "Female"; 

      string strUserName = txtUserName.Text.Trim(); 
      string strPassword = txtPassword.Text.Trim(); 

      string query = "INSERT INTO Employees(EmployeeID, FirstName, LastName, Designation, Salary, Address, ZipCode, Phone, Email, DOB, Nationality, Gender, Username, Password)VALUES(@strEmpID, @strFirstName, @strLastName, @strDesignation, @iSalary, @strAddress, @iZipCode, @iPhone,@strEmail, @dtDOB, @strNationality, @strGender, @strUserName, @strPassword)"; 
      SqlCommand InsertCommand = new SqlCommand(query, cn); 
      InsertCommand.Connection = cn; 

      InsertCommand.Parameters.AddWithValue(@"strEmpID", strEmpID); 
      InsertCommand.Parameters.AddWithValue(@"strFirstName", strFirstName); 
      InsertCommand.Parameters.AddWithValue(@"strLastName", strLastName); 
      InsertCommand.Parameters.AddWithValue(@"strDesignation", strDesignation); 
      InsertCommand.Parameters.AddWithValue(@"iSalary", iSalary); 
      InsertCommand.Parameters.AddWithValue(@"strAddress", strAddress); 
      InsertCommand.Parameters.AddWithValue(@"iZipCode", iZipCode); 
      InsertCommand.Parameters.AddWithValue(@"iPhone", iPhone); 
      InsertCommand.Parameters.AddWithValue(@"strEmail", strEmail); 
      InsertCommand.Parameters.AddWithValue(@"dtDOB", dtDOB); 
      InsertCommand.Parameters.AddWithValue(@"strNationality", strNationality); 
      InsertCommand.Parameters.AddWithValue(@"strGender", strGender); 
      InsertCommand.Parameters.AddWithValue(@"strUsername", strUserName); 
      InsertCommand.Parameters.AddWithValue(@"strPassword", strPassword); 

      InsertCommand.ExecuteNonQuery(); 
      MessageBox.Show("New Employee's Data has been added successfully"); 

      cn.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 
0

열의 비트 데이터 형식을 사용하십시오. 그런 다음 radioButton1.Checked 값을 SQL 매개 변수를 사용하여 직접 삽입 할 수 있습니다. 당신은, 전체 코드를 제공 나는 완전히 내 코드를 변경하고 작동

("INSERT INTO Employeess(EmpID,FirstName,LastName,Salary,desgnation,gender) 
         values ('" + textBox1.Text + "','" + 
            textBox2.Text + "','" + 
            textBox3.Text + "','" + 
            textBox4.Text + "','" + 
            textBox5.Text + "'," + 
             (radioButton1.Checked ? "1" : "0") +")"); 
관련 문제