2016-07-06 5 views
-1

正直言って私はちょうどプログラミングに興味があり、これは私の最初のプロジェクトです。だから私はdinamicalテキストボックスを作成し、私はデータベースに情報を保存したいが、致命的なエラーが毎回ポップアップ。私は接続が正しいことを知っています。私は問題が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

A NumericUpDownコントロールを挿入することは、おそらくフロートを編集するためのより良い選択であるないアイデアを持っていないので、あなたはまた、これらのパラメータの任意の値を指定しませんでした。 – 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を使用しました。心配しないで、その時の1つのレッスン、最も重要なのは進歩です:D – Harikeinas

関連する問題