我正在尝试从Windows窗体项目中的本地数据库访问基本表。我似乎已正确创建数据库,并按照预期在我的解决方案资源管理器中导入数据集。
但是,我仍然坚持如何实际访问数据库中的数据。我尝试了许多不同的解决方案,但我似乎无法到达任何地方。
这是我迄今为止所取得的成就:
但我无法弄清楚如何对数据集进行查询,无论是选择,更新还是删除行。
我最接近获取数据来自此处的代码:
InventoryDatabaseDataSet context = new InventoryDatabaseDataSet();
var inv = context.Tables["Inventory"];
var all = inv.Select();
但它并没有返回任何看似有效的数据。
如何查询我的数据集?我理解Linq是查询的常用方法,但我不明白如何达到能够做这样的事情。
非常感谢任何帮助,谢谢!
答案 0 :(得分:0)
在DataSet中存储数据后,通过DataTable对象读取DataSet
类似地,DataRow的对象用于读取表的行。
以下是示例代码
InventoryDatabaseDataSet ds = new new InventoryDatabaseDataSet();;
DataTable dt = new DataTable();
da.SelectCommand = new SqlCommand(@"SELECT * FROM FooTable", connString);
da.Fill(ds, "FooTable");
dt = ds.Tables["FooTable"];
foreach (DataRow dr in dt.Rows)
{
MessageBox.Show(dr["Column1"].ToString());
}
答案 1 :(得分:0)
解决方案资源管理器中的DataSet
项表示许多类型。就像String
,Int32
和Form
类型一样,InventoryDatabaseDataSet
是一种类型。就像其他类型一样,您可以在代码中创建一个实例,然后使用它。
您还会发现那些组件类型已添加到工具箱中,可以像设计其他控件和组件一样添加到设计器中的表单中。
您还可以从“数据源”窗口拖动项目,让设计人员生成适当的对象和代码。例如,如果将表从“数据源”窗口拖到表单,它将生成一个DataSet
来存储数据,一个表适配器用于从数据库中检索数据并保存更改,{{1}要显示数据,DataGridView
要在BindingSource
和DataTable
以及DataGridView
之间进行链接以导航数据。
如果您确实使用了设计器,那么您将通过调用表适配器上的BindingNavigator
来查看生成的代码来检索数据,并通过调用Fill
来保存更改。如果你想在代码中自己做,那么你可以这样做来检索:
Update
这就是保存:
var data = new InventoryDatabaseDataSet();
using (var adapter = new InventoryTableAdapter())
{
adapter.Fill(data);
}
this.InventoryBindingSource.DataSource = data.Inventory;
this.InventoryDataGridView.DataSource = this.InventoryBindingSource;