我从一个以前的同事那里接管了一个项目,我正在尝试从一个从mysql数据库中提取的数据表填充listview。
下面是我用来从mysql中提取的内容:
internal static DataTable GetDataSPT3(string StoredProcedure, Dictionary<string, string> Parameters)
{
DataTable _DT = new DataTable();
MySqlCommand cmd = new MySqlCommand(StoredProcedure, new MySqlConnection(Creds.GetConnectionStringT3()));
cmd.CommandType = CommandType.StoredProcedure;
foreach (KeyValuePair<string, string> Parameter in Parameters)
cmd.Parameters.Add(new MySqlParameter(Parameter.Key, Parameter.Value));
cmd.Connection.Open();
MySqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
_DT.Load(dr);
dr.Close();
return _DT;
}
这是我用来填充listview的内容:
private void GetMetrics()
{
string begin = "2015-05-26 00:00:00";
string end = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
Dictionary<string, string> Parameters = GetParameters();
Parameters.Add("p_daily_metrics_date_Date1", begin);
Parameters.Add("p_daily_metrics_date_Date2", end);
DataTable dt = new DataTable();
foreach (DataRow row in RRCStoredProcedures.GetDataSPT3("spGetDailyMetrics", Parameters).Rows)
{
ListViewItem item = new ListViewItem(row[0].ToString());
for (int i = 0; i < row.Table.Rows.Count;i++)
{
item.SubItems.Add(row[i].ToString());
}
lvMetrics.Items.Add(item);
}
}
监视进程使用断点工作,sql正在查找数据并返回数据,但不是以任何有用的方式。
我做错什么了?
1条答案
按热度按时间h43kikqp1#
这就是我想到的,我还在学习,解决我的问题。datagridview不适用于我,因为它在加载时触发selectionchanged事件,并且由于窗体的需要,我无法获得该事件。
我的解决方案:
因为datarow公开了itemarray,所以我把它放到了一个我知道如何使用的数组中。