将列添加到数据集C#

时间:2014-12-15 14:39:16

标签: c# mysql wpf datagrid

我试图用从mysql表中获取的数据填充WPF应用程序中的datagrid。我有5个具有相同结构的表,我需要从每个表中获取最后20行。

下面的代码做得很好,除了一件小事 - 我需要在每个相应的行中添加具有商店名称(由第一个查询提取的商店变量)的附加列。

请不要考虑从哪里开始!

void fillDataTable()
{
    string store;
    string connection = Properties.Settings.Default.sqlconn;
    MySqlConnection conn = new MySqlConnection(connection);
    conn.Open();
    string nameQuery = "SELECT `name` FROM `stores`";
    MySqlCommand selectStore = new MySqlCommand(nameQuery, conn);
    MySqlDataReader readName = selectStore.ExecuteReader();
    DataSet ds = new DataSet();
    while (readName.Read())
    {
        store = readName["name"].ToString();
        MySqlConnection conn1 = new MySqlConnection(connection);
        conn1.Open();
        string dataQuery = "SELECT * FROM `"+ store + "` ORDER BY `id` DESC LIMIT 20";
        MySqlCommand selecetData = new MySqlCommand(dataQuery, conn1);
        MySqlDataAdapter da = new MySqlDataAdapter(selecetData);
        da.Fill(ds, "LoadDataBinding");
        conn1.Close();
    }
    salesGrid.DataContext = ds;
    conn.Close();
}

2 个答案:

答案 0 :(得分:2)

您可以尝试此操作(避免循环遍历数据表以填充列):

string dataQuery = "SELECT '"+ store + "' AS \"store\",* FROM '"+ store + "' ORDER BY 'id' DESC LIMIT 20";

答案 1 :(得分:0)

好吧,您可以通过以下代码向DataTable添加任意数量的列:

ds.Tables[0].Columns.Add("ColumnName", Type.GetType("System.String"));

注意:填写数据集后需要添加列。