我试图用从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();
}
答案 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"));
注意:填写数据集后需要添加列。