【问题标题】:Datagridview not populating data from SQL Server CEDatagridview 未从 SQL Server CE 填充数据
【发布时间】:2013-09-10 20:44:18
【问题描述】:

我在将数据填充到 datagridview 控件时遇到问题。这是我的代码。

string sqlQuery = "SELECT * FROM Table;";
string source = "Data Source=E:\\Documents\\Database\\Database.sdf;" +
                "Password=password;Persist Security Info=False;";

SqlCeDataAdapter dataAdapter = new SqlCeDataAdapter(sqlQuery, source);
SqlCeCommandBuilder commBuilder = new SqlCeCommandBuilder(dataAdapter);

DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;

dataAdapter.Fill(table);

dbBindSource.DataSource = table;
dbGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
dbGridView.ReadOnly = true;
dbGridView.DataSource = dbBindSource;

这在表单加载时运行无济于事。有人吗?

【问题讨论】:

  • 您必须在调试模式下运行应用程序并确保每一行代码都按预期运行。
  • 如果您在dbBindSource.DataSource = table; 处设置断点并检查table.Rows.Count(),您会看到什么?
  • 由于某种未知原因我选择检查 table.Rows.Count() 后,数据随后填充了 datagridview 控件。

标签: c# .net sql sql-server-ce


【解决方案1】:
DataTable dataT;
BindingSource bindS;

using (SqlCeConnection yourConnection = new SqlCeConnection("Data Source=|DataDirectory|\\YourDatabase.sdf")) {
    dataT = new DataTable();
    bindS = new BindingSource();    

    string query = "SELECT * FROM table01";
    SqlCeDataAdapter dA = new SqlCeDataAdapter(query, yourConnection);
    SqlCeCommandBuilder cBuilder = new SqlCeCommandBuilder(dA);
    dA.Fill(dataT);

    bindS.DataSource = dataT;
    DataGridView1.DataSource = bindS;
}

由于页面在 google 上的排名并且从未得到答复,因此通过一个工作示例来恢复此问题。

路径是相对于你的执行目录的。

【讨论】:

    猜你喜欢
    • 2012-06-10
    • 1970-01-01
    • 2011-01-06
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多