質問 |
||
| QNo.3712102 | VB2005からSQLSever2005へ接続、値のセットについて | |
|---|---|---|
| 質問者:lets711 |
VB2005、SQLSever2005ともに初心者です。みなさんの知恵をお借りしたく質問いたします。以下の状況で困っています。 1.VB2005からSQLSever2005へ接続する為にはコードをどのように記述すればよろしいでしょうか。 2.「AAA」というテーブルに「BBB」というテーブルから「AAA」の「A_No」という項目に「BBB」の「B_No」という項目の値をセットするにはどのような記述が必要でしょうか。 よろしくお願いいたします。 |
|
困り度:
|
||
| 質問投稿日時: 08/01/25 13:20 |
||
回答良回答20pt |
|
| ANo.2 | こんばんわ 遅くなりました。。。(^^; >実は「AAA」「BBB」ともに複数のフィールドがありまして 複数ある場合で、全て取得したい場合は、 cmd.CommandText = "SELECT A_No FROM AAA"; のSQLを「SELECT * FROM AAA」で取得することが出来ます。 INSERT方法ですが、 >while (dr.Read()) >{ >// INSERT文 >cmd.CommandText = ""; >// INSERT実行 >cmd.ExecuteNonQuery(); >} この箇所を次のような感じで修正するとよいのではないかと思います。 // dr.Read()は取得したデータを1行ずつ読み込む // 全て読み込むとループから抜ける while (dr.Read()) { // 読み込んだ行のデータは、今回でいうとdrに配列で格納されている // 値を取り出すには dr[0] やdr["A_No"]のようにフィールドを // 指定する // INSERT文 cmd.CommandText = "INSERT INTO BBB (B_No) VALUES (" + dr[0].ToString() + ")"; // INSERT実行 cmd.ExecuteNonQuery(); } このように記述すると、取得したデータの行数だけINSERTできるはずです(^^; |
|---|---|
| 回答者:totoro1999 | |
| 種類:アドバイス どんな人:経験者 自信:参考意見 |
|
| 回答日時: 08/01/25 21:55 |
|
| |
| この回答へのお礼 | わかりやすい説明でありがとうございます。 内容は理解できました。がんばってコーディングしてみます! |
回答 |
|
| ANo.1 | using System.Data.SqlClient; private static void SqlTest() { // ServerName はローカルにDBが存在するなら localhost などをセット // Initial Catalog DB名 // Integrated Security 場合によって変ります // 調べてみてください string conStr = "Data Source = ServerName;" + Initial Catalog = Northwind;" + "Integrated Security = SSPI;"; SqlCommand cmd; SqlDataReader dr; SqlConnection con = new SqlConnection(conStr ); // データベース接続を開く con.Open(); cmd = con.CreateCommand(); // SQLをセット cmd.CommandText = "SELECT A_No FROM AAA"; // SQLを実行し、結果を取得する dr = cmd.ExecuteReader(); // SELECTしたデータをもとにBBBへINSERTする while (dr.Read()) { // INSERT文 cmd.CommandText = ""; // INSERT実行 hCommand.ExecuteNonQuery(); } cmd.Dispose(); con.Close(); con.Dispose(); } すみません、時間が無いので確認していませんが、 参考になれば幸いです。 |
|---|---|
| 回答者:totoro1999 | |
| 種類:アドバイス どんな人:経験者 自信:参考意見 |
|
| 回答日時: 08/01/25 14:06 |
|
| |
| この回答への補足 | 早速のご回答ありがとうございます。SQLSever2005へ接続するコードは理解できました。 項目のセットについてですが、実は「AAA」「BBB」ともに複数のフィールドがありまして「AAA」のテーブルから一つ一つSelect文でフィールドを選択して「BBB」のテーブルで該当するフィールドにINSERT文でセットする感じなるのでしょうか。 よろしくお願いいたします。 |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |