- - PR -
リストボックスからデータベースにデータを追加するには?
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-12-14 10:13
現在、アダプターなど、すべて手入力で、データベースの管理用プログラムを作っています。
資格を入力する欄を作り、それをデータベースに書き込もうとしているのですが、数に指定がないため、for文で設定して、その中でif文を使って条件判断させようとしているんですが、その条件んのところでプログラムがとまってしまいます。 現在のコードは、 myTable2 = dsSyain.Tables("資格マスター") For i = 0 To 255 If lstSikaku.SelectedItems(i) <> "" Then myRow = myTable2.NewRow() myRow("社員ID") = txtID.Text myRow("資格名") = lstSikaku.SelectedItems(i) myTable2.Rows.Add(myRow) Else sda.InsertCommand = myCommand.GetInsertCommand() sda.Update(dsSyain, "資格マスター") dsSyain.Clear() End If Next CreateDataSet() End If こんな感じになっています。追記事項としては、 sdaが、データアダプター dsSyainがデータセット になっています。 どこがおかしいのか、自分ではわからないので、なにかあったら、教えてください。 [ メッセージ編集済み 編集者: soushi 編集日時 2004-12-14 10:50 ] | ||||
|
投稿日時: 2004-12-14 10:33
こんにちは。
これで問題解決をお望みですか? 他の人がどのようにして問題解決に至っているか他のスレッドを幾つか見てみてください。 あとこれも・・。有名ですよ 技術系メーリングリストで質問するときのパターン・ランゲージ http://www.hyuki.com/writing/techask.html | ||||
|
投稿日時: 2004-12-14 14:36
Dim i As Integer
Dim myRowrow As System.Data.DataRow Dim myTable2 As New System.Data.DataTable myTable2.Clear() scd.CommandText = "SELECT 社員ID ,資格名 " & " [資格マスター]" myTable2 = dsSyain.Tables("資格マスター") myRowrow = myTable2.NewRow For i = 1 To 255 If lstSikaku.Items.Item(i) = "" Then sda.InsertCommand = myCommand.GetInsertCommand sda.Update(dsSyain, "資格マスター") dsSyain.Clear() Else myRowrow("社員ID") = txtID.Text myRowrow("資格名") = lstSikaku.Items.Item(i) myTable2.Rows.Add(myRowrow) End If Next i 今のコードはこうなっています。 このプログラムは、自分の所有資格をリストボックスにいれさせて、 それをデータベースの資格マスターに追加していくプログラムです。 データベースには、社員IDと資格名の列があります。 このプログラムを実行すると「myRowrow = myTable2.NewRow」の部分で 「オブジェクト参照がオブジェクト インスタンスに設定されていません。」 っていうエラーがでてきます。 どこかおかしいところがあれば指摘せしていただけませんか? | ||||
|
投稿日時: 2004-12-14 14:51
dsSyain.Tables("資格マスター")はちゃんと 作られてるんですよね?どこかで・・・ | ||||
|
投稿日時: 2004-12-14 15:13
今、つけました。そこですねw
今度はまた変なエラーがでました。 あるはずの、テーブルがないっていわれます。 何か、原因あるとおもいますか? | ||||
|
投稿日時: 2004-12-14 15:33
「scd.CommandText = "SELECT 社員ID ,資格名 " & " [資格マスター]" 」
というロジックが気にかかるのですが、「dsSyain」にデータをFillする際の SQLはどの様になっているのでしょうか? | ||||
|
投稿日時: 2004-12-14 16:03
sdaSikaku = New SqlClient.SqlDataAdapter("SELECT * FROM 資格マスター", scn)
sda.Fill(dsSikaku, "資格マスター") って感じです。 | ||||
|
投稿日時: 2004-12-14 17:15
sdaSikakuとsda、dsSikakuとdsSyainの関係は(同じもの?)
|