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

MySQL検索後のレコード数の取得

環境/言語:[XP, VB.NET]
分類:[.NET]

MySQLを使っているのですが、Form Loadに
oleCn.ConnectionString = ……
oleCn.Open()

oleDa = New Odbc.OdbcDataAdapter("SELECT * FROM tb", oleCn)
oleDa.Fill(dtSet, "tb")
dtTbl = dtSet.Tables("tb")
dtRow = dtTbl.Rows(0)
TextBox2.Text = dtRow(0)
TextBox3.Text = dtRow(1)
TextBox7.Text = dtTbl.Rows.Count.ToString 

と書き、テーブル内のレコードを全て表示してから、
テーブル内全てのレコード数を表示することはできました。

しかし id を検索した後、各当するレコード数のみを数える方法が分かりません。
Dim oleCmd1, oleCmd2 As Odbc.OdbcCommand
Dim dt1, dt2 As String
oleCmd1 = New Odbc.OdbcCommand("select id from tb where id = ?", oleCn)
oleCmd2 = New Odbc.OdbcCommand("select day from tb where id = ?", oleCn)

oleCmd1.Parameters.Clear()
oleCmd2.Parameters.Clear()

oleCmd1.Parameters.Add("param1", TextBox6.Text)           oleCmd2.Parameters.Add("param1", TextBox6.Text)

dt1 = CType(oleCmd1.ExecuteScalar(), String)
dt2 = CType(oleCmd2.ExecuteScalar(), String)

TextBox2.Text = dt1
TextBox3.Text = dt2

このように検索をしています。
どうすればよいのか分からないので、ぜひ教えてもらえないでしょうか。
■No11662に返信(のりおさんの記事)
質問にそのまま答えるとすれば
>テーブル内全てのレコード数を表示することはできました。
> TextBox7.Text = dtTbl.Rows.Count.ToString

>しかし id を検索した後、各当するレコード数のみを数える方法が分かりません。
TextBox7.Text = dt1.Rows.Count.ToString
でいいんじゃないの?ってなるなぁ。

パラメータクエリの実行が分からないなら調べればすぐ
分かる程度の問題だし、そもそもパラメータクエリ使わなく
てもいいわけだし。…質問の日本語とコードにズレがあると
答えようが無いと思いますが?結局何が問題なんだろう???
件数を知りたいということは、複数あるんですか?
パラメータクエリにした途端、なぜアダプタのFillではなくExecuteScalarを使用する
ように変えたのでしょうか。
この方法だと、結果セット中の最初の行の最初の列の値、ようするに、ひとつの値しか
取得できませんが。


目的が分かりませんから何ともいえませんが、
私としては、パラメータ付きのクエリをSelectCommandに指定したアダプタで、Fillして
DataTableに受け取って、ご本人(のりおさん)が最初に挙げている、またるしぇさんも
書かれている、dt1.Rows.Count.ToStringで対応すればよいのでは、と思いますが。
返事が遅くなりすみません。
なんとか無事にできました。
ご迷惑をかけてすみませんでした。
解決済み!

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