dataGridView不显示数据库记录

时间:2014-03-19 11:48:57

标签: c# database visual-studio datagridview

我尝试了很多不同的方法,但似乎无法找到解决这个令人困惑的问题的方法。

代码:

public Menu()
    {
        InitializeComponent();
    }
    //connection class
    connection cc = new connection();

    //displaying current office employees
    public void display()
    {
        DataTable table = new DataTable();
        SqlConnection con = new SqlConnection(cc.connectDB());
        con.Open();
        SqlCommand cmd = new SqlCommand(" select USERID, NAME, INLATE from USERINFO", con);
        cmd.ExecuteNonQuery();
        SqlDataReader c = cmd.ExecuteReader();
        table.Columns.Add("USERID", typeof(string));
        table.Columns.Add("NAME", typeof(string));
        table.Columns.Add("INLATE", typeof(string));
        while (true)
        {
            if (c.Read() == true)
            {
                table.Rows.Add(c.GetValue(0).ToString().Trim(), c.GetValue(1).ToString().Trim(), c.GetValue(3).ToString().Trim());
            }
            else
                break;
        }
        dataGridView1.DataSource = table;
    }

这是一个简单的应用程序构建,需要在dataGridView对象中显示数据。

请救我一个人。

3 个答案:

答案 0 :(得分:1)

呵呵,你选择查询是不吉利的。 ExecuteNonQuery永远不会带回任何结果。它是您在运行UPDATE,INSERT或DELETE时使用的。现在,当您想要读取执行阅读器所需的值时。

SqlCommand cmd = new SqlCommand(" select USERID, NAME, INLATE from USERINFO", con);
SqlDataReader c = cmd.ExecuteReader();

答案 1 :(得分:0)

确保查询获取任何结果(如果您没有从任何数据库客户端访问,例如Management Stydio) 尝试:

List <string> l1=new List <string>();

         SqlDataReader c = cmd.ExecuteReader();

        while (c.Read())
        {
           l1.Add(c[0].ToString());
        }
     c.CLose();
     con.CLose();
     Messabox.Show(li.Count.ToString());
     return;
     dataGridView1.DataSource = table.AsDataView();

从那里你将有一个起点来弄清楚问题是在查询中还是在数据表中绑定数据的方式

答案 2 :(得分:0)

使用实际的服务器名称和凭据,我可以通过可访问的反馈来调用查询,感谢所有帮助人员...