C# Visual Studio 2013填充数据网格
我正在尝试从SQLite数据库读取数据。然后我想将其填充到我的DataGrid中,但以下代码不起作用(dataUrl是DataGrid对象):C# Visual Studio 2013填充数据网格,c#,wpf,sqlite,datagrid,C#,Wpf,Sqlite,Datagrid,我正在尝试从SQLite数据库读取数据。然后我想将其填充到我的DataGrid中,但以下代码不起作用(dataUrl是DataGrid对象): 它甚至不会引发异常。您应该设置ItemsSource而不是DataContext,为此您需要获取DataView,因为它只接受IEnumerable: dataUrl.ItemsSource = table.DefaultView; 或 同时删除command.ExecuteNonQuery() 您可以使用ExecuteOnQuery执行目录操作(例如
它甚至不会引发异常。您应该设置
ItemsSource
而不是DataContext
,为此您需要获取DataView
,因为它只接受IEnumerable
:
dataUrl.ItemsSource = table.DefaultView;
或
同时删除command.ExecuteNonQuery()代码>
您可以使用ExecuteOnQuery执行目录操作(例如,查询数据库的结构或创建数据库对象,如表),或者通过执行UPDATE、INSERT或DELETE语句来更改数据库中的数据,而不使用数据集
此外,由于您使用参数和AddWithValue(..)
,因此您的查询应如下所示:
string sql = "SELECT rowid, url FROM urls WHERE url LIKE @search";
然后添加如下参数:
command.Parameters.AddWithValue("@search", "%" + txtSearch.Text + "%");
这就是使用参数的全部意义,您应该设置ItemsSource
,而不是DataContext
,为此您需要获取DataView
,因为它只接受IEnumerable
:
dataUrl.ItemsSource = table.DefaultView;
或
同时删除command.ExecuteNonQuery()代码>
您可以使用ExecuteOnQuery执行目录操作(例如,查询数据库的结构或创建数据库对象,如表),或者通过执行UPDATE、INSERT或DELETE语句来更改数据库中的数据,而不使用数据集
此外,由于您使用参数和AddWithValue(..)
,因此您的查询应如下所示:
string sql = "SELECT rowid, url FROM urls WHERE url LIKE @search";
然后添加如下参数:
command.Parameters.AddWithValue("@search", "%" + txtSearch.Text + "%");
这就是使用参数的全部意义,您应该设置ItemsSource
,而不是DataContext
,为此您需要获取DataView
,因为它只接受IEnumerable
:
dataUrl.ItemsSource = table.DefaultView;
或
同时删除command.ExecuteNonQuery()代码>
您可以使用ExecuteOnQuery执行目录操作(例如,查询数据库的结构或创建数据库对象,如表),或者通过执行UPDATE、INSERT或DELETE语句来更改数据库中的数据,而不使用数据集
此外,由于您使用参数和AddWithValue(..)
,因此您的查询应如下所示:
string sql = "SELECT rowid, url FROM urls WHERE url LIKE @search";
然后添加如下参数:
command.Parameters.AddWithValue("@search", "%" + txtSearch.Text + "%");
这就是使用参数的全部意义,您应该设置ItemsSource
,而不是DataContext
,为此您需要获取DataView
,因为它只接受IEnumerable
:
dataUrl.ItemsSource = table.DefaultView;
或
同时删除command.ExecuteNonQuery()代码>
您可以使用ExecuteOnQuery执行目录操作(例如,查询数据库的结构或创建数据库对象,如表),或者通过执行UPDATE、INSERT或DELETE语句来更改数据库中的数据,而不使用数据集
此外,由于您使用参数和AddWithValue(..)
,因此您的查询应如下所示:
string sql = "SELECT rowid, url FROM urls WHERE url LIKE @search";
然后添加如下参数:
command.Parameters.AddWithValue("@search", "%" + txtSearch.Text + "%");
这就是使用参数的全部意义这更有效。DataGrid现在显示表的标题,但没有条目。您是否在命令行中检查了SQL?或者至少调试查询结果。@SoBiT,删除command.ExecuteNonQuery()代码>并查看它是否有效then@dkozl这应该不会对结果产生任何影响:)太棒了,改变设置参数的方式就是解决方案!谢谢这更有效。DataGrid现在显示表的标题,但没有条目。您是否在命令行中检查了SQL?或者至少调试查询结果。@SoBiT,删除command.ExecuteNonQuery()代码>并查看它是否有效then@dkozl这应该不会对结果产生任何影响:)太棒了,改变设置参数的方式就是解决方案!谢谢这更有效。DataGrid现在显示表的标题,但没有条目。您是否在命令行中检查了SQL?或者至少调试查询结果。@SoBiT,删除command.ExecuteNonQuery()代码>并查看它是否有效then@dkozl这应该不会对结果产生任何影响:)太棒了,改变设置参数的方式就是解决方案!谢谢这更有效。DataGrid现在显示表的标题,但没有条目。您是否在命令行中检查了SQL?或者至少调试查询结果。@SoBiT,删除command.ExecuteNonQuery()代码>并查看它是否有效then@dkozl这应该不会对结果产生任何影响:)太棒了,改变设置参数的方式就是解决方案!谢谢