【问题标题】:dataGridView not showing database recordsdataGridView 不显示数据库记录
【发布时间】:2015-12-27 22:15:09
【问题描述】:

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

代码:

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 对象中显示数据。

请救救我。

【问题讨论】:

  • 您是否收到任何错误或异常消息?
  • 不,没什么。我构建了应用程序然后它运行但似乎没有在它应该显示的区域内显示任何数据。
  • 上面的代码有什么问题...结果是什么...
  • dataGridView1.DataSource = table;dataGridView1.DataBind();可以解决你的问题
  • 我只是显示了一个空白的 dataGridView 对象,根本没有显示错误对话框来通知我问题...

标签: c# database visual-studio datagridview


【解决方案1】:

嘿嘿,你选择了Query很不走运。 ExecuteNonQuery 永远不会带回任何结果。它是您在运行 UPDATE、INSERT 或 DELETE 时使用的。现在,当您要读取需要执行读取器的值时。

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

【讨论】:

  • 感谢您的意见,但不幸的是,情况并非如此,因为我也尝试过:(
  • @SonerGönül 哈哈。我一直在两个标签之间切换,所以我什至不考虑我正在阅读什么类型的代码:P
  • 现在改成C#了
  • 对我没用 :( 谢谢你的帮助!无论如何我至少可以完全显示数据库表“USERINFO”而不定义列和行,所以我有一个良好的基础开始?
  • codeproject.com/Questions/353481/… 我想这可以做到。
【解决方案2】:

确保查询获取任何结果(以防您无法从任何数据库客户端访问,例如 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();

从那里您将有一个起点来确定问题是出在查询中还是出在数据表中绑定数据的方式上

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2016-09-03
      • 2012-08-28
      • 2015-04-19
      • 2011-07-31
      • 2016-10-12
      • 2011-09-15
      相关资源
      最近更新 更多