[英]Call Dataset property in foreach loop
我有一個數據集,我想在作為屬性的foreach循環中調用它。 我不想使用.table [“ xxx”]
public DataSet run(string query)
{
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(query, conn);
adapter.Fill(dataset);
return dataset;
}
string query = "select * from table";
foreach (DataRow row in run(query))
{
//
}
DataSet沒有任何方法可以返回DataRow對象。
如果您不能指定返回的TableName,則可以使用數字索引,如下所示:
foreach (DataRow row in run(query).Tables[0].Rows)
{
//
}
如果查詢可能返回多行,則應遍歷所有表,如下所示:
foreach(DataTable table in run(query).Tables)
{
foreach(DataRow row in table.Rows)
{
foreach (DataColumn column in table.Columns)
{
//
}
}
}
您應該改用DataTable
。
這不正是你想要避免什么:這至少是一個數字索引。 但這讓我想知道原始數據集的聲明位置。
foreach (DataRow row in run(query).Tables[0].Rows)
{
//
}
只是警告您:您的run()方法是一種反模式。 我看到很多人希望將數據庫調用抽象為一個接受字符串的簡單方法,而他們幾乎總是忘記一件重要的事情:查詢參數。 結果是在整個項目中亂碼,這些代碼使用字符串連接以不安全的方式構建sql。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.