2016-05-19 9 views
1

ユーザーがボタンをクリックすると、データをデータベースに挿入するコードを作成しようとしています。コードに何か問題があり、正しく動作しないようです。私は私のホスティングプロバイダに基づいて外部データベースに接続します。ユーザーがボタンを一度クリックするとデータにデータを挿入する

private void druk_Click(object sender, EventArgs e) 
     { 
      MySql.Data.MySqlClient.MySqlConnection conn; 
      string myConnectionString; 

      myConnectionString = "server=s59.hekko.net.pl;uid=truex2_kuba;" + 
       "pwd=test;database=truex2_kuba;"; 

      try 
      { 
       conn = new MySql.Data.MySqlClient.MySqlConnection(myConnectionString); 
       conn.Open(); 
       MySqlCommand cmd = new MySqlCommand(); 
      } 
      catch (MySql.Data.MySqlClient.MySqlException ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 

       cmd.CommandText = "insert into [barcode]values(@class, @tree, @type, @amount, @length, @width, @square)"; 
       cmd.Parameters.AddWithValue("@class", klasa.Text); 
       cmd.Parameters.AddWithValue("@tree", gatunek.Text); 
       cmd.Parameters.AddWithValue("@type", rodzaj.Text); 
       cmd.Parameters.AddWithValue("@amount", amount.Text); 
       cmd.Parameters.AddWithValue("@length", length.Text); 
       cmd.Parameters.AddWithValue("@width", width.Text); 
       cmd.Parameters.AddWithValue("@square", textBox1.Text); 
       int a = cmd.ExecuteNonQuery(); 
       if (a > 0) 

      { 
       MessageBox.Show("Zapisane do raportu"); 
      } 
+0

接続文字列にユーザー名とパスワードを渡していますか? –

+0

エラーメッセージは何ですか? –

+0

'catch'ブロックの下にあるコードを' try'ブロックの中に入れてください。これは、クエリを実行し、その例外が例外を発生させるコードです。その例外が何であるか教えてください。 –

答えて

1

問題はこれです:

MySqlCommand cmd = new MySqlCommand(); 

trycatchブロックの範囲です。

は、さらに上のコードで、ヌルであり、したがってデータが中に行かないcmd変数。trycatchブロックの外側

移動し、それを参照ありました。

+0

これをtryとcatchブロックの外に移動しましたが、エラーが発生しましたストリームから読み込みに失敗しました – Truex

+0

ブレークポイントを* 1 * 'conn = .. * 2 * 'cmd.CommandText =' ...、* 3 * 'int a = cmd.ExecuteNonQuery();'、コードを実行して、エラーが発生した場所の結果を教えてください。 – t0mm13b