VB.NETとSQL Server 2014.このコードは奇妙なエラーを生成します。 HasRows
はTRUEですが、選択範囲は空です。さらに、where
条件を満たすレコードがテーブルに多数あるため、選択範囲は空であってはいけません。SqlDataReaderとselectが正しく動作しません
SQL Serverで同じものを直接選択すると、すべて正常に動作します。 annoとnomedivのパラメータは正しいです。
try
connection1.Open()
sqlcmd = String.Format("select distinct HomeTeam from tutto WHERE anno='{0}' AND div= '{1}' AND HomeTeam <> 'NULL'", annocampionato, nomediv(i))
SetSqlCommand(sqlcmd, 1)
sqlreader1 = sqlcommand1.ExecuteReader()
Do While sqlreader1.Read()
If sqlreader1.HasRows Then '
nomesquadra = RTrim(sqlreader1.GetString(0))
......
End If
Loop
connection1.Close()
Catch ex As Exception
MsgBox(ex.Message)
connection1.Close()
End Try
は、より良い説明しよう:範囲の例外のうちのプログラムはWHILE
ループに入り、sqlreader1.hasrows
はTRUEですが、sqlreader1.GetString(0)
リターン指数。コマンドをSELECT * FROM tutto
に変更すると、結果は同じになります。事前に
おかげ
パメラ
P.S.私は、リリース版の文字列concatを使用することを避けるよ
**すべての**コードを投稿してください。 – Dai
Whileループ内に "If sqlreader1.HasRows Then"を指定するのは意味がありません。結果が出ていない限りwhileループは入力されません。 – GendoIkari
また、パラメータ化されたクエリを使用し、文字列のconcartentationまたは文字列のフォーマットを使用しないでください。 – Dai