- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データベースから情報の取得・更新・削除 visual studio2005 sqlserver2005 c# (3))
データベースから情報の取得・更新・削除 visual studio2005 sqlserver2005 c#
このQ&Aのポイント
- データベースから情報の取得・更新・削除に関する問題が発生しています。
- コードの一部が正しくないため、データの取得やデータグリッドの表示ができません。
- 質問者は他の人のアドバイスを求めています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Visual Studioをお持ちなら、MSDNのサンプルソースコードをご覧になることをお勧めします。 SqlDataAdapterのFillは、データをDBから取得してDataSetに格納するメソッドですので、データをDBに登録するのには使えません。 また、dataGridView1.DataSource = ds.Tables["user_master"];も、その取得したデータを画面に表示するためのコードですので、この場面には適しません。削除しましょう。 >SqlDataAdapter da = new SqlDataAdapter(); >da.SelectCommand = cmd; >DataSet ds = new DataSet(); >da.Fill(ds, "user_master"); この4行の代わりに cmd.ExecuteNonQuery(); としてみてください。SQL文をただ実行します。 また、 >cmd.Parameters.AddWithValue("@userid", SqlDbType.VarChar); これは意図した動きをしないでしょう。 おそらく、登録画面上においたテキストボックスなどからの値を入れたいのだと思いますが、その場合は cmd.Parameters.AddWithValue("@userid", textUserId.Text); このtextUserIdは例です。実際の対応する変数名に直してください。 そのほかのcmd.Parameters.AddWithValueも同じです。
補足
t4tさん ありがとうございます。上記修正完了いたしました。 が、しかしExecuteNonQuery();の部分で「@userid付近に不適切な構文があります。」とのエラーが出てきてしまいます。構文的には、「検索」ボタンと同じため、なぜエラーが出るのか分かりません。 以上宜しくお願いします。 SqlCommand cmd = new SqlCommand("INSERT INTO [user_master]" + " ( UserID ,UserName , Password , Age , Salary ) VALUES " + " ( @userid , @username, @password, @age, @salary ", cnc); cmd.Parameters.AddWithValue("@userid", textBox1.Text); cmd.Parameters.AddWithValue("@username", textBox2.Text); cmd.Parameters.AddWithValue("@password", textBox3.Text); cmd.Parameters.AddWithValue("@age", textBox4.Text); cmd.Parameters.AddWithValue("@salary", textBox6.Text); cmd.Parameters.AddWithValue("@sex", comboBox1.SelectedValue); //SqlDataAdapter da = new SqlDataAdapter(); //da.SelectCommand = cmd; //DataSet ds = new DataSet(); //da.Fill(ds, "user_master"); //上記4行のかわりに cmd.ExecuteNonQuery(); //QL文をただ実行 cnc.Close();