C# 对如何填充listview感到困惑

C# 对如何填充listview感到困惑,c#,listview,C#,Listview,我有一个包含两列的表:username和age。我要做的是用来自数据库的数据填充ListView。我想我遗漏了一些东西,因为每次加载表单时,ListView都是空的。我注意到,DataReader的属性HasRows在调试时返回false void populate() { SqlCommand cmd = new SqlCommand("select * from users ", con); dr = cmd.ExecuteReader();

我有一个包含两列的表:
username
age
。我要做的是用来自数据库的数据填充ListView。我想我遗漏了一些东西,因为每次加载表单时,ListView都是空的。我注意到,
DataReader
的属性
HasRows
在调试时返回false

  void populate()
    {  
        SqlCommand cmd = new SqlCommand("select * from users ", con);
        dr = cmd.ExecuteReader();

        while (dr.Read())
        {
            ListViewItem lvi = new ListViewItem(dr[0].ToString());
            lvi.SubItems.Add(dr[1].ToString());
            listView1.Items.Add(lvi);
        }

        dr.Close();
        dr.Dispose();
    }

   private void button1_Click(object sender, EventArgs e)
        {
            using (con = new SqlConnection("server=.\\sqlepxress;database=Projects;Integrated Security=sspi")) {

                try
                {
                      con.Open();
                     populate();

                }
                catch (SqlException x )
                {

                    MessageBox.Show(x.Message);
                }

            }
        }

您的连接字符串无效,请尝试:

con = new SqlConnection("Data Source=....;Initial Catalog=..;Connect Timeout=15;Integrated Security=sspi";
或者(如果Windows身份验证有问题:)


从您的描述来看,
dr
实际上没有返回任何行。您是否真的连接到了您认为要连接的数据库?我同意Codor的说法,请确认您正在返回行,然后我们可以从那里开始确保您关闭连接或使用
using
语句。正在检索的datapart上的断点,然后查看
dr
是否已填充。消息框中是否有异常?请查看更新的代码。现在,我在连接数据库时出现异常。在建立到sql Server Hi@apomene的连接时,出现了与网络相关或特定于实例的错误。我的连接字符串为true,但感谢您的建议。我已修改了连接字符串像这样。“Server=.\\sqlexpress;Database=Projects;User Id=sa;Password=1234”和ıt很好用。但是为什么???请注意不要发布凭据。可能WIndows Authendication有问题…如果可以连接WIndows Authendication,请与Management Studio联系。是的,我可以通过Management Studio双向连接。谢谢你的朋友。
 new SqlConnection("Data Source="+...+";Initial Catalog=Projects;User id="+user+";Password="+pass+";Connect Timeout=15;Integrated Security=false");