簡體   English   中英

在foreach循環中調用Dataset屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM