如果我理解这一点,我是否必须使用表适配器将数据输入到我的类型化数据集中,我不能只创建强类型数据集并让数据自动加载? (我也在VS2012中使用.net 3.5项目)
例如,我必须这样做以获取数据(如果我这样做,我得到数据)
var a = new V7RTLEvtDataSetTableAdapters.tblFileTableAdapter();
a.GetData();
而不是这样做,(如果我这样做,我什么也得不到......我能理解它的延迟加载...... ??)
V7RTLEvtDataSet o = new V7RTLEvtDataSet();
var r = o.tblFile.Select();
答案 0 :(得分:1)
所有DataSet(类型和无类型)都是数据库无关的,即任何DataTable都可以从Oracle填充,就像从MS-Sql一样简单。 DataSet不了解架构或连接字符串。
您需要一个适配器来读取/来自后备存储。
(而DataTable.Select()可能来自Linq-to-Datasets。
答案 1 :(得分:0)
打字数据集的最佳用法:忽略,永不使用。转而去OTM。使用LINQ。数据集 - 键入和无类型 - 当它们在.NET 1.0中时很糟糕,从那时起,即使MS已经实现了替代方案。 10年内不使用,不会使用一个。
异常:报告SQL“外部输入”的应用程序,因此您基本上只需要一个通用数据容器。
使用EntityFramework或大量备选方案之一。
答案 2 :(得分:0)
备受诟病,备受误解的强类型数据集!
通常是的,您将使用TableAdapter
来加载数据并执行更新。
使用设计器,您可以向表适配器添加参数查询,以支持程序所需的操作,例如select * from customers where customerid = @customerid
调用此FillbyCustomerid
。
然后,您可以使用TableAdapter
按以下方式提取所选客户的数据:
dim ta as new dscustomerstableadapters.customertableadapter
dim ds as new dsCustomers
ta.fillbycustomerid (ds.customers, ourid)