DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataTableへのデータロードについて

環境/言語:[開発機 XP VB.NET]
分類:[.NET]

お世話になります。

2つのデータベースからDATASETにデータを読込んで処理を行おうと考えています。(下記ソース)
実際に動かしたところ、最初のデータベース(XHEAD)は読めこめているのですが、2度目(XITEM)が
読み込めていません。
DataTableの内容がそのままなので、clearをしてみたのですが、2回目のFillが動いていないようです。
2回目のFillが動かない原因をご教授いただけないでしょうか?

' XHEAD
strSQL = "SELECT CODE,NAME,MAINBUMO,DOFUKUSUU,TANI1 FROM XHEADT WHERE CODE = " & "'" & rowq.Item(3) & "'"
Dim cm As New SqlCommand(strSQL, clsDB.objConn)
Dim dt As New DataTable
Dim da As New SqlDataAdapter(cm)
da.Fill(dt)
処理A

' XITEM
strSQL = "SELECT CODE,NAME,MAINBUMO,DOFUKUSUU,TANI1 FROM XITEM WHERE CODE = " & "'" & rowq.Item(3) & "'"
da.Fill(dt)
処理B
■No23232に返信(KYOUさんの記事)
> ' XITEM
> strSQL = "SELECT CODE,NAME,MAINBUMO,DOFUKUSUU,TANI1 FROM XITEM WHERE CODE = " & "'" & rowq.Item(3) & "'"
> da.Fill(dt)

strSQLが実行されていませんよね。
うん。このままのコードを書いてるなら、strSQL は da と無関係ですね。
SqlCommand.CommandText を変更してください。
■No23237に返信(るしぇさんの記事)
> うん。このままのコードを書いてるなら、strSQL は da と無関係ですね。
> SqlCommand.CommandText を変更してください。

やじゅさん、るしぇさんアドバイスありがとうございます。

るしぇさん
>SqlCommand.CommandText を変更してください。
下記のようにテキストにセットしたのですが、間違っているようで結果が変わりません。
なにがまずいのでしょうか?

' XHEAD
strSQL = "SELECT CODE,NAME,MAINBUMO,DOFUKUSUU,TANI1 FROM XHEADT WHERE CODE = " & "'" & rowq.Item(3) & "'"
Dim cm As New SqlCommand(strSQL, clsDB.objConn)
Dim dt As New DataTable
Dim da As New SqlDataAdapter(cm)
da.Fill(dt)
処理A

' XITEM
cm.CommandText = "SELECT CODE,NAME,MAINBUMO,DOFUKUSUU,TANI1 FROM XITEM WHERE CODE = " & "'" & rowq.Item(3) & "'"

da.Fill(dt)
処理B
■No23238に返信(KYOUさんの記事)
' XITEM
cm.CommandText = "SELECT CODE,NAME,MAINBUMO,DOFUKUSUU,TANI1 FROM XITEM WHERE CODE = " & "'" & rowq.Item(3) & "'"

da.SelectCommand = cm ← 追加かな?
da.Fill(dt)
■No23238に返信(KYOUさんの記事)
>なにがまずいのでしょうか?
色々とテストプログラムを作ってそれを調査してください。

例えば、
・最初に実行しているSQLと後から実行しているSQLを入替えたら?
・どちらか1つのSQLのみ実行してみたら?
・オブジェクト(cm, dt, da)を2回とも New で新規作成したら?
何が成功して何が失敗しているのか?
原因をあぶりだせるような調査方法は幾つもあると思うんですが?
何故何もしないで質問するのかが理解できません。
やじゅさん、るしぇさんアドバイスありがとうございます。

結局下記のとおりSqlCommandに関わる所をもうひとつ作ることで解決しました。

ありがとうございました。

' XHEAD
strSQL = "SELECT CODE,NAME,MAINBUMO,DOFUKUSUU,TANI1 FROM XHEADT WHERE CODE = " & "'" & rowq.Item(3) & "'"
Dim cm As New SqlCommand(strSQL, clsDB.objConn)
Dim dt As New DataTable
Dim da As New SqlDataAdapter(cm)
da.Fill(dt)
処理A

' XITEM
strSQLA = "SELECT VENDOR,FIXLEVEL,STZAIK,FURYOU,ROHS,GREEN,TCOD,SBKU2,URIK,HAN,CONK,PATK,SINK,GRPK,KENK,SDAT,CDAT,TDAT,HBAR,SBSH,KTANK,UTAN1,STAN1,ZTAN1,KTAN1,KKTN1,UTAN2,STAN2,ZTAN2,KTAN2,KKTN2,KODRK FROM XITEMT WHERE CODE = " & "'" & rowq.Item(3) & "'"
Dim cm1 As New SqlCommand(strSQLA, clsDB.objConn)
Dim dt1 As New DataTable
Dim da1 As New SqlDataAdapter(cm1)
da1.Fill(dt1)
処理B
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板