在 SQLReader 中使用数组

using array in SQLReader

在下面的代码中,我试图将 reader(r33) 分配给数组,这样我就可以在下一个 sql 命令中使用该数组的值。你能帮我做这个吗?

//connection
SqlConnection c = new SqlConnection("Data Source=localhost\sqlexpress;Initial Catalog=BookStoreDataBase1;Integrated Security=True;Pooling=False;");
c.Open();
//first statment
string raf = string.Format("Select Id  from [Order] WHERE customerID={0}", k);
SqlCommand comm1 = new SqlCommand(raf, c);
SqlDataReader r33 = comm1.ExecuteReader();
r33.Read();
int [] k2 = r3.GetInt32(0);
r33.Close();

//second statment
string raf4 = string.Format("Select *  from orderDetails WHERE orderId={0}", k2);
SqlCommand comm14 = new SqlCommand(raf4, c);
SqlDataReader r333 = comm14.ExecuteReader();

不太确定你问的是什么,但据我了解,你第一次查询将 return 包含不同 ID 的多行,你想在第二个命令中使用它们。这样做的基本方法是:

string IDs = "(";
while (r33.read())
{
    IDs += r33.GetString(0) + ",";
}
IDs += ")"
IDs = IDs.Replace(",)",")"); 

然后对您获得的多个 ID 使用 IN 关键字

string raf4 = string.Format("Select *  from orderDetails WHERE orderId IN {0}", IDs);