作者:翻版的袁城 | 来源:互联网 | 2023-01-26 15:49
我正在尝试在我的Windows窗体应用程序中填充数据网格视图,但是当我执行select查询时,没有从数据库返回任何内容.我在本网站上查看了有关此主题的其他问题,但无法找到解决我问题的任何问题.
数据视图表的名称是qbcMemDataView,数据源是一个名为sqlite_dbDataSet1的sqlite数据集
这是我的代码:
public Form1()
{
InitializeComponent();
dbCOnnection= new SQLiteConnection("Data Source=sqlite_db.sqlite;Version=3");
dbConnection.Open();
string[] restrictiOns= new string[4];
restrictions[2] = "test_table_mom";
using (DataTable dTbl = dbConnection.GetSchema("Tables", restrictions))
{
for (int i = 0; i 0)
{
tblChooser.SelectedIndex = 0;
}
}
}
private void btnSelect_tbl_Click(object sender, EventArgs e)
{
string sql = "SELECT id, name FROM test_table_mom";
using (SQLiteDataAdapter dbAdapter = new SQLiteDataAdapter(sql, dbConnection))
{
DataTable dataTbl = new DataTable();
dbAdapter.Fill(dataTbl);
qbcMemDataView.DataSource = dataTbl;
}
}
此外,这是运行程序的屏幕截图,可能有助于更好地解释我遇到的问题:http://imgur.com/j9ffeVi
我知道表中有数据,我只是不知道为什么在执行btnSelect_tbl_Click方法时它没有出现在数据网格中.
任何帮助,将不胜感激.
谢谢!
1> Taterhead..:
根据教程如何:将数据绑定到Windows窗体DataGridView控件,您缺少一个BindingSource组件,它将数据从数据源绑定到您的表到DataGrid.
BindingSource
像这样初始化类的顶部:
private BindingSource bindingSource1 = new BindingSource();
然后在你的按钮顶部附近单击方法,在sql添加行之前:
qbcMemDataView.DataSource = bindingSource1;
最后改变最后一行代码
qbcMemDataView.DataSource = dataTbl;
至
bindingSource1.DataSource = dataTbl;
尝试一下,看看它是否适合你.