C#,创建一个带有存储过程的字典,然后在dgv中查看

时间:2018-03-10 14:56:27

标签: c# dictionary datagridview

我正在尝试从存储过程创建一个返回2列的字典,然后在datagridview中显示。这是我最终目标的简化,但目前我有:

List<SqlParameter> sqlParams = new List<SqlParameter>();//

DataTable dt = DAL.ExecStoredProcedure("spMsgSearch", sqlParams);//run dal , get a dt back

Dictionary<string, string> dic = new Dictionary<string, string>();//create new dict

foreach (DataRow dr1 in dt.Rows)//for each row in the datatable add //a row from the entries within
{
     string key = dr1[0].ToString() + "-" + dr1[0].ToString();
     string value = dr1[0].ToString() + "-" + dr1[0].ToString();
     if (!dic.ContainsKey(key))
     {
          dic.Add(key, value);
     }

}//end foreach

dataGridView1.DataSource = dic;

任何回复赞赏

1 个答案:

答案 0 :(得分:0)

private void button1_Click(object sender,EventArgs e)         {             列出sqlParams = new List(); //

        DataTable dt = DAL.ExecStoredProcedure("spMsgSearch", sqlParams);//run dal , get a dt back

        //DataSet dr = DalDataSet.ExecStoredProc("spMsgSearch", sqlParams);

        Dictionary<string, string> dic = new Dictionary<string, string>();//create new dict

        foreach (DataRow dr1 in dt.Rows)//for each row in the datatable add a row from the entries within
        {
            string key = dr1[0].ToString() + "-" + dr1[0].ToString();
            string value = dr1[0].ToString() + "-" + dr1[0].ToString();
            if (!dic.ContainsKey(key))
            {
                dic.Add(key, value);
            }

        }//end foreach

        dataGridView1.DataSource = dic.ToList();//the ToList solved the error