2016-05-18 10 views
0

TextBoxのデータをデータベースに追加したいが、動作しません。Windowsフォームアプリケーション(テキストボックス)からデータベースSqlにデータを追加するにはどうすればよいですか?

private void insert_Click(object sender, EventArgs e) 
{ 
    SqlConnection Conectare = new SqlConnection(); 
    Conectare.ConnectionString = @"Data Source=.\SQLEXPRESS; 
     AttachDbFilename=|DataDirectory|\Cuvinte.mdf; 
     Integrated Security=True;User  
     Instance=True "; 
    SqlDataAdapter da = new SqlDataAdapter(); 
    da.InsertCommand = new SqlCommand("INSERT INTO Tabel_Cuvinte(id,cuv_ger,cuv_eng)"+" VALUES (@id, @cuv_ger,@cuv_eng)", Conectare); 

    da.InsertCommand.Parameters.Add("@id", SqlDbType.Int).Value = txtnr.Text; 
    da.InsertCommand.Parameters.Add("@cuv_ger", SqlDbType.VarChar).Value = txtger.Text; 
    da.InsertCommand.Parameters.Add("@cuv_eng", SqlDbType.VarChar).Value= txteng.Text; 
    Conectare.Open(); 
    da.InsertCommand.ExecuteNonQuery(); 
    Conectare.Close(); 
} 
+0

エラーはどうなりますか? – Kahbazi

+0

あなたのコードをtry catch {}に入れた場合、Arvinの修正で例外が発生していますか? – paio

答えて

0

"動かない" この

da.InsertCommand.Parameters.Add("@id", SqlDbType.Int).Value = Convert.ToInt32(txtnr.Text); 
+0

良いアイデアですが、ボタンをクリックしても機能しません。 : –

+0

どういうエラーが表示されるのですか? – Kahbazi

+0

エラーはありません。はい、割り当てます。 –

0

da.InsertCommand.Parameters.Add("@id", SqlDbType.Int).Value = txtnr.Text; 

を置き換える少しあいまいです。エラーや例外が発生した場合は、投稿してください。

  1. エラーが表示されますか?
  2. 上記の方法でボタンのクリックが失敗しますか?
  3. メソッドが呼び出されますが、挿入が実行されていませんか?

さらに、Arvinが示唆するように、テキストボックスの値を最初に整数に変換します。

0

私も同じ問題で長時間闘っていました。そして私は多くの同じ質問&答えを見た。

DataDirectoryを使用しています| DBファイルから値を取得でき、insertコマンドを実行する際にエラーが発生しないと想定しますが、値はDBファイルには挿入されません。

これは私の個人的なアイデアです。私のプライベートな結論は、この動作は通常の| DataDirectory |そうです。つまり、アプリケーションのデータファイルは、デプロイメント後に操作から保護されるべきです。 「データ」ファイルは、データを読み取ることができるようにファイル内にデータを提供する必要があります。

したがって、ユーザーの側からlocalDB .MDFファイル(MS SQL 2014)を作成して、アプリケーションでlocalDBを使用してデータの書き込みと読み取りができるようにしました。私のアプリケーションは、頻繁に更新する必要があるクラウドサーバから自動的にデータをダウンロードします。 反対側では、大きくて既に固定されたデータを| DataDirectory | .MDFファイル、私は読み込み専用の大きなデータを挿入し、展開前に私のプロジェクトにMDFファイルを追加することを意味します。

私の経験が助けてくれることを願っています。しかし、これは私の個人的な意見であり、私は完全に間違っているかもしれないと思います。しかし、再び、私はMicrosoftの公式文書でこの動作について言及していませんでした。

| DataDirectoryのような1つのオプションしかありません。 ?前に挿入してもよろしいですか?あなたはこのコードをあなた自身で書いていますか?可能であれば、| DataDirectory |ではなく別のオプションを探してみてください。 SQLデータベースに接続します。 IPアドレスを持つクラウドSQLサーバーを使用していますが、なぜDataDirectoryを使用するのか理解できません。 SQL Expressへの接続文字列として、さまざまなオプションがあります。

+0

そして、私の場合、DataDirectory | Cuvinte.mdfはありません。単に試してみてください。 –

関連する問題