1

SQLでパラメーター化されたクエリ(ASP.NETとC#)を使用している場合

var db = Database.Open("Database1");
SqlCommand cmd = new SqlCommand("SELECT * FROM pageinfo WHERE pageID = @pageID");
cmd.Parameters.AddWithValue("@pageID", 1);

そして、このページの後半で、取得したデータのforeachループを実行したいと思います。

foreach(var row in ???)

取得したデータにアクセスするには、(???の代わりに)何を使用しますか?

ありがとう。

4

2 に答える 2

3

クエリの実行方法によって異なります。

通常、それはSqlCommand.ExecuteReaderによって行われます

たとえば、あなたの場合、次のことができます。

.... 

 SqlDataReader reader = cmd .ExecuteReader();
 while (reader.Read())
 {
   ...
 }

ただし、データを取得する他の方法もあります。たとえば、 DataSetを使用 する方法の完全な例については、以下を参照してください。

初心者向けの ADO.NET の使用

于 2013-03-18T14:01:38.757 に答える
0

の代わりにwhile反復ステートメントを使用できます。これを見てください。SqlCommand.ExecuteReaderforeach

var db = Database.Open("Database1");
SqlCommand cmd = new SqlCommand("SELECT * FROM pageinfo WHERE pageID = @pageID");
cmd.Parameters.AddWithValue("@pageID", 1);
SqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
    Console.WriteLine(reader[0]);
}

reader[0]最初の列の最初の行をreader[1]返し、データがもちろんある場合は2番目の列の最初の行を返します。

于 2013-03-18T14:02:12.880 に答える