1

我创建了一个名为charityah的数据库,其中包含5 个表。他们的名字列在一个组合框中。

当我选择其中一个时,我想在 DataGridView 中显示它们的内容。

我尝试的是:首先我将 DataGridView 链接到这个数据库并尝试了我发现的这段代码:

SqlConnection connection = new SqlConnection();

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    string s = comboBox1.Text;

    connection.ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Downloads\charityah.mdf;Integrated Security=True";

    using (connection)
    {
        connection.Open();
        SqlDataAdapter adapter = new SqlDataAdapter("select * from "+s, connection);
        DataSet ds = new DataSet();
        adapter.Fill(ds, s);
        dataGridView1.DataSource = ds.Tables[0];
        dataGridView1.Refresh();   
    }
}

此方法不会给我任何错误,它会找到表,但在 DataGridView 中什么也看不到。

4

2 回答 2

1

由于您报告(评论)有行,因此听起来主要问题(连接处理除外)是数据绑定问题。一些想法跃入脑海:

  • 表处于虚拟模式吗?
  • 是添加列吗?
  • 列是否已经存在?

您可能想尝试添加:

dataGridView1.VirtualMode = false;
dataGridView1.Columns.Clear();
dataGridView1.AutoGenerateColumns = true;

之前:

dataGridView1.DataSource = ds.Tables[0];

您可能还想检查dataGridView1.DataMember没有分配值。

于 2013-05-21T10:11:13.063 回答
0

试试这个,有时无意义的项目确实会造成很多混乱。所以尝试将自动生成列设置为真。这可能会开始向您显示结果。因为根据您的评论,似乎还有其他问题。所以试试吧 dataGridView1.AutoGenerateColumns = true;

于 2013-05-21T10:33:07.853 回答