C# 如何使用mysql中的数据更新listview

C# 如何使用mysql中的数据更新listview,c#,mysql,winforms,C#,Mysql,Winforms,如何使用数据库表中的特定列更新listview? 我使用了下面的代码 String con = "datasource = localhost; port=3306;username=root;password=****"; MySqlConnection mycon = new MySqlConnection(con); string qw = "select wine from cms.menulist"; MySqlDataAdapt

如何使用数据库表中的特定列更新listview? 我使用了下面的代码

   String con = "datasource = localhost; port=3306;username=root;password=****";
        MySqlConnection mycon = new MySqlConnection(con);

        string qw = "select wine from cms.menulist";
        MySqlDataAdapter da = new MySqlDataAdapter(qw, mycon);
        DataTable dt1 = new DataTable();
        da.Fill(dt1);
        foreach (DataRow row in dt1.Rows)
        {
            string wine = string.Format("{0}", row.ItemArray[0]);
            listView1.Items.Add(wine);
        }

但是这段代码生成了一个包含两列的列表视图。mysql中的数据放在这两列中。我希望列表视图只包含一列

似乎
列表视图
正在根据插入的项目的宽度构建它们的列。这种行为可能会导致您的问题,因此您有一些选项/解决方法可以开始:

  • 正确调整
    列表视图的大小,以便只适合一列。如果您知道数据的宽度,这是可能的

  • 将列添加到
    列表视图中
    ,并根据
    列表视图的总宽度减去4(对于该列)设置其宽度。之后,将列样式设置为
    ColumnHeaderStyle.None
    ,并将
    视图设置为
    视图。详细信息

    listView1.View = View.Details;
    listView1.Columns.Add("somecolumn");
    listView1.Columns[0].Width = listView1.Width - 4;
    listView1.HeaderStyle = ColumnHeaderStyle.None;
    
  • 停止使用
    ListView
    ,考虑一些替代方案,如
    ListBox
    DataGridView


  • 即使该服务在本地主机上运行,也不应在此处发布密码。顺便问一下,你这里有什么问题?据我所知,您正在查询数据库并收到一个名为
    wine
    的特定列。我没有看到其他专栏。如果数据量太大,listview可能会拆分为一个新列?是的,listview会拆分为两列。否,数据量不高,其值小于50感谢选项2起作用。。是否有其他方法可以根据加载的数据自动调整listview的大小。因为目前它只显示了几行,我必须向下滚动才能看到其余的。我可以不用滚动查看所有数据吗?看,嗯,这很难做到。是否有其他方法在表单上显示数据库表中的列。我不想使用datagridview,因为我不喜欢它的外观。我希望数据以简单的表格格式显示,只包含一列。我只知道
    DataGridView
    ,因为这通常是实现这一点的方法。你可以对此做些研究。如果您关心外观,请考虑WPF作为应用程序的框架。我最初不喜欢DigaGrdVIEW,因为左边的灰色空间。刚刚研究并找到了消除灰色区域的方法。现在,我可以查看datagridview中检索到的所有数据,而无需使用滚动条。因为目前我只能查看其中的几行。是否有一种方法可以让datagridview自行调整大小以显示所有行?