2016-07-06 3 views
-1

솔직히 말해서 방금 프로그래밍에 관심이 있었고 이것이 내 첫 번째 프로젝트이며 멈추었습니다. 그래서 나는 dinamical textboxes를 만들었고 나는 정보를 데이터베이스에 저장하려고하지만 치명적인 오류가 발생할 때마다 나타납니다. 나는 그 연결이 정확하다는 것을 압니다. 나는 문제가 dinamical textboxes와 함께 있고, 검색된 인터넷을 찾았으며, 해결책을 찾지 못했고, 나쁜 영어로 유감스럽게 생각합니다. 당신이 저를 도울 수 있기를 바랍니다.mysql에 데이터를 삽입 할 수 없습니다. 치명적인 오류가 발생했습니다

 private void button2_Click(object sender, EventArgs e) 
    { 
     TextBox textbox1 = new TextBox(); 
     textbox1.Size = new Size(75,23); 
     textbox1.Text = "Pav."; 
     textbox1.Location = new Point(0, 0); 
     panel1.Controls.Add(textbox1); 
     string name = textbox1.Text; 

     TextBox textbox2 = new TextBox(); 
     textbox2.Size = new Size(75, 23); 
     textbox2.Text = "0.5"; 
     textbox2.Location = new Point(80, 0); 
     panel1.Controls.Add(textbox2); 
     float sum = float.Parse(textbox2.Text); 

     ComboBox comboBox4 = new ComboBox(); 
     comboBox4.Size = new Size(75, 23); 
     comboBox4.Text = "-Type-"; 
     comboBox4.Items.Add("Salary"); 
     comboBox4.Location = new Point(170, 0); 
     comboBox4.Items.Add("Other"); 
     comboBox4.Name = "comboBox4"; 
     panel1.Controls.Add(comboBox4); 



     Button btn = new Button(); 
     btn.Text = "Save"; 
     btn.Location = new Point(250, 0); 
     btn.Click += delegate 
     { 
      if (comboBox4.SelectedItem.ToString() == "Salary") 
      { 
       string myConnection = "datasource=localhost; port=3306; username=root; password=root"; 
       string insert = "insert into budget.incomes (Name, sum) values (@Name, @sum);"; 
       MySqlConnection conDataBase = new MySqlConnection(myConnection); 
       MySqlCommand cmdDataBase = new MySqlCommand(insert, conDataBase); 
       MySqlDataReader myReader; 
       try 
       { 
        conDataBase.Open(); 
        myReader = cmdDataBase.ExecuteReader(); 
        MessageBox.Show("Saved"); 
        this.Close(); 
        while (myReader.Read()) 
        { } 

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

는'sum' 키워드이지만 아무 생각이 없다, 그래서 당신은 또한 이러한 매개 변수에 대해 어떤 값을 제공하지 않았다 * *이 – Plutonix

+0

numericUpDown 제어 아마 float를 편집 할 수있는 더 나은 선택을 삽입하는 것. – Kinetic

+0

그리고 여기에 문제를 추측하고 있기 때문에 오류를 게시해야합니다. – Kinetic

답변

0

DataReader가 필요하지 않으므로 매개 변수를 사용해야합니다.

string myConnection = "datasource=localhost; port=3306; username=root; password=root"; 
string insert = "insert into budget.incomes (Name, sum) values (@Name, @sum);"; 

using (var conDataBase = new MySqlConnection(myConnection)) 
using (var cmdDataBase = new MySqlCommand(insert, conDataBase)) 
{  
    cmdDataBase.Parameters.AddWithValue("@Name", name); 
    cmdDataBase.Parameters.AddWithValue("@Sum", sum); 
    conDataBase.Open(); 
    cmdDataBase.ExecuteNonQuery(); 
    MessageBox.Show("Saved");  
} 
this.Close(); 
+0

감사합니다. 이제 모든 것이 좋습니다. 나는 YouTube 튜토리얼 때문에 DataReader를 사용했다. – Harikeinas

+0

확인. DataReader를 사용하여 데이터를 읽습니다 (따라서 이름). – Kinetic

+0

네, 잠깐 생각해 보았습니다. 튜토리얼은 등록과 로그인 폼에 관한 것이므로 DataReader를 사용했습니다. 신경 쓰지 마라, 그 때의 한 가지 교훈, 가장 중요한 것은 진보이다 : D – Harikeinas

관련 문제