2016-03-24 1 views
0

次のコードを使用してデータベースからデータを選択する場合があります。複数の結果が返される場合があります。すべての予約時間などの一致する結果を配列と雛の使い方に戻す方法がわかりませんこれらはリストボックスにあります。OleDbCommand複数の行を返す

myConn.ConnectionString = connection.dbdataSource; 
OleDbCommand selectServiceNo = myConn.CreateCommand(); 
selectServiceNo.CommandText = 
    "SELECT ID, BookingTime, BookingDate, Description FROM booking"; 

selectServiceNo.CommandText += " WHERE BookingDate = #"; 
selectServiceNo.CommandText += dateSelected; 
selectServiceNo.CommandText += "#"; 

myConn.Open(); 
OleDbDataReader myDR2 = selectServiceNo.ExecuteReader(); 
while (myDR2.Read()) 
{ 
    bTime = Convert.ToString(myDR2["BookingTime"]); 
    bDate = Convert.ToString(myDR2["BookingDate"]); 
} 
myConn.Close(); 
+0

あなたのコードは[SQL Injection](http://www.troyhunt.com/2013/07/everything-you-wanted-to-know-about-sql.html)に脆弱です。 **決して文字列連結を使用してSQLクエリを構築しないでください。 **常に**パラメータ化されたクエリを使用します。 –

答えて

1

あなたがTimeDate(なぜこの二つは最初の場所で結合されていない?)とDescription)などの関連するすべてのプロパティを、作成したクラスBookingを作成します。

次に、あなたのwhileで、新しいBookingを作成し、whileループの外で作成されたリスト(List<Booking>)に追加します。そのリストを返します。

(注:あなたのコマンドを破棄するには、usingも使用してください。)コマンドが閉じられる前に例外がスローされたときにメモリとハンドルのリークがあります。 )

関連する問題