- PR -

リストボックスからデータベースにデータを追加するには?

投稿者投稿内容
soushi
会議室デビュー日: 2004/12/06
投稿数: 13
投稿日時: 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/03/25
投稿数: 197
投稿日時: 2004-12-14 10:33
こんにちは。

これで問題解決をお望みですか?

他の人がどのようにして問題解決に至っているか他のスレッドを幾つか見てみてください。

あとこれも・・。有名ですよ
技術系メーリングリストで質問するときのパターン・ランゲージ
http://www.hyuki.com/writing/techask.html
soushi
会議室デビュー日: 2004/12/06
投稿数: 13
投稿日時: 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」の部分で
「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
っていうエラーがでてきます。
どこかおかしいところがあれば指摘せしていただけませんか?
momotchi
常連さん
会議室デビュー日: 2004/01/16
投稿数: 28
お住まい・勤務地: 宮城県
投稿日時: 2004-12-14 14:51
引用:

myTable2 = dsSyain.Tables("資格マスター")



dsSyain.Tables("資格マスター")はちゃんと
作られてるんですよね?どこかで・・・
soushi
会議室デビュー日: 2004/12/06
投稿数: 13
投稿日時: 2004-12-14 15:13
今、つけました。そこですねw
今度はまた変なエラーがでました。

あるはずの、テーブルがないっていわれます。
何か、原因あるとおもいますか?
yyy
常連さん
会議室デビュー日: 2004/01/27
投稿数: 33
投稿日時: 2004-12-14 15:33
「scd.CommandText = "SELECT 社員ID ,資格名 " & " [資格マスター]" 」
というロジックが気にかかるのですが、「dsSyain」にデータをFillする際の
SQLはどの様になっているのでしょうか?
soushi
会議室デビュー日: 2004/12/06
投稿数: 13
投稿日時: 2004-12-14 16:03
sdaSikaku = New SqlClient.SqlDataAdapter("SELECT * FROM 資格マスター", scn)
sda.Fill(dsSikaku, "資格マスター")
って感じです。
yyy
常連さん
会議室デビュー日: 2004/01/27
投稿数: 33
投稿日時: 2004-12-14 17:15
sdaSikakuとsda、dsSikakuとdsSyainの関係は(同じもの?)

スキルアップ/キャリアアップ(JOB@IT)