OleDbCommand返回多行

时间:2016-03-24 15:46:46

标签: c# oledbcommand

我正在使用以下代码从数据库中选择数据,在某些情况下,这应该会返回多个结果,而且我不确定如何将所有匹配结果(例如所有预订时间)返回到数组中并且hen在列表框。

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();

1 个答案:

答案 0 :(得分:1)

创建一个类Booking,您可以在其中创建所有相关属性,例如TimeDate(为什么这两个组合在一起?&){{1 }})。

然后,在Description中,创建一个新的while并将其添加到您在Booking循环之外创建的列表(List<Booking>)中。返回该列表。

(注意:也可以使用while来处理你的命令。在命令关闭之前抛出异常时你有内存并处理泄漏。更重要的是,你的代码很容易受到SQL注入。总是使用SQL参数。)