【问题标题】:How to add items in a datatable to a listview?如何将数据表中的项目添加到列表视图?
【发布时间】:2018-03-04 11:31:39
【问题描述】:

我目前正在开发一个 C# Windows 窗体应用程序。

现在我正在尝试使用 SQL 命令从数据库中检索信息,以填写我需要在我的应用程序中拥有的信息。

一个示例查询是“从位置选择 *”

在 Location 表中会有 locationId、LocationName、districId 等变量。 我使用了以下代码

private void button1_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection("connectionstring");
    SqlDataAdapter ada = new SqlDataAdapter("select * from MasterLocation", con);
    DataTable dt = new DataTable();
    ada.Fill(dt);

    for (int i = 0; i < dt.Rows.Count; i++)
    {
        DataRow dr = dt.Rows[i];
        ListViewItem listitem =new ListViewItem(dr["pk_Location_ID"].ToString());
        listitem.SubItems.Add(dr["var_Location_Name"].ToString());
        listitem.SubItems.Add(dr["fk_int_District_ID"].ToString());
        listitem.SubItems.Add(dr["fk_int_Company_ID"].ToString());
       listView1.Items.Add(listitem);
    } 

输出是:

但应该是这样的:

【问题讨论】:

  • 那么你想要什么样的输出?
  • 你为什么不用DataGridView?这正是您想要的图像上的样子,您还可以在其上绑定数据源。

标签: c# sql listview


【解决方案1】:

你必须更改一些代码

private void button1_Click(object sender, EventArgs e)
{
    listView1.View = View.Details;
    SqlConnection con = new SqlConnection("connectionstring");
    SqlDataAdapter ada = new SqlDataAdapter("select * from MasterLocation", con);
    DataTable dt = new DataTable();
    ada.Fill(dt);

    for (int i = 0; i < dt.Rows.Count; i++)
    {
        DataRow dr = dt.Rows[i];
        ListViewItem listitem = new ListViewItem(dr["pk_Location_ID"].ToString());
        listitem.SubItems.Add(dr["var_Location_Name"].ToString());
        listitem.SubItems.Add(dr["fk_int_District_ID"].ToString());
        listitem.SubItems.Add(dr["fk_int_Company_ID"].ToString());
       listView1.Items.Add(listitem);
    } 

【讨论】:

【解决方案2】:

添加以下代码

listView1.View = View.Details;

它成功了。

【讨论】:

    【解决方案3】:
     private void FormView_Load(object sender, EventArgs e)
      {
        sample = new DataTable(); //Sample Data
                sample.Columns.Add("id", typeof(string));
                sample.Columns.Add("name", typeof(string));
                sample.Rows.Add("1", "apple");
                sample.Rows.Add("2", "acer");
                sample.Rows.Add("3", "alpha");
                sample.Rows.Add("4", "beat");
                sample.Rows.Add("5", "ball");
                sample.Rows.Add("6", "cat");
                sample.Rows.Add("7", "catch");
                sample.Rows.Add("10", "zebra");
    
                listViewEx1.View = View.Details;
                listViewEx1.Columns.Add("id");
                listViewEx1.Columns.Add("name");
      }
    
    
    
             listViewEx1.Items.Clear();
    
                listViewEx1.FullRowSelect = true;
    
                foreach (DataRow row in sample.Rows)
                {
                        ListViewItem item = new ListViewItem(row["id"].ToString());
                        item.SubItems.Add(row["name"].ToString());
                        listViewEx1.Items.Add(item); //Add this row to the ListView
                 }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-11
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多