【问题标题】:how to update listview with data from mysql如何使用来自mysql的数据更新listview
【发布时间】:2014-04-13 10:31:17
【问题描述】:

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

   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 的数据放在这两列中我希望列表视图只包含 1 列

【问题讨论】:

  • 您不应该在此处发布您的密码,即使该服务在您的本地主机上运行。顺便问一下,你的问题是什么?据我所知,您正在查询您的数据库并收到一个名为wine 的特定列。我没有看到任何其他专栏。如果数据量太大,可能列表视图只是分解成一个新列?
  • 是的,列表视图分为 2 列。不,数据量不高,小于 50 个值

标签: c# mysql winforms


【解决方案1】:

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

  1. 正确调整ListView 的大小,以便仅适合一列。如果你知道你的数据有多大,这是可能的。

  2. 向您的ListView 添加一列,并根据ListView 的总宽度减4(对于该列)设置其宽度。之后,将列样式设置为ColumnHeaderStyle.None,并将View设置为View.Details

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

【讨论】:

  • 感谢选项 2 有效.. 无论如何我可以根据它加载的数据自动调整列表视图的大小。因为目前它只显示几行,我必须向下滚动才能查看其余部分。无论如何我可以在不滚动的情况下查看所有数据
  • 嗯,它说这样做很棘手。是否有另一种方法可以在表单上显示数据库表中的列。我不想使用 datagridview,因为我不喜欢它的外观。我希望数据以仅包含 1 列的简单表格格式显示
  • 我只知道DataGridView,因为这通常是解决问题的方法。你可以对此做一些研究。如果您关心外观,请将 WPF 视为您的应用程序的框架。
  • 由于左侧的灰色空间,我最初不喜欢 datagridview。刚刚研究并找到了一种去除灰色区域的方法。现在我可以在不使用滚动条的情况下查看在 datagridview 中检索到的所有数据。因为目前我只能查看几行。有没有一种方法可以让 datagridview 自行调整大小以显示所有行?
猜你喜欢
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2020-01-31
  • 1970-01-01
  • 1970-01-01
  • 2018-07-07
  • 1970-01-01
相关资源
最近更新 更多