ADO.NET数据库访问的一个缺陷和补救思路

ADO.NET数据库访问的一个缺陷和补救思路

在C#中,访问数据库的典型方法是:
// connect to my local server, northwind db        
         string connectionString = "server=(local)//NetSDK;" +
         "Trusted_Connection=yes; database=northwind";

         // get records from the customers table
         string commandString =
         "Select CompanyName, ContactName from Customers";

         // create the data set command object
         // and the DataSet
         SqlDataAdapter DataAdapter =
         new SqlDataAdapter(
         commandString, connectionString);

         DataSet DataSet = new DataSet( );

         // fill the data set object
         DataAdapter.Fill(DataSet,"Customers");
其访问数据库的模型是:DB-> SqlDataAdapter ->DataSet. 
 我们看到,在初始化SqlDataAdapter对象的时候,传入了SQL命令字符串和数据库的连接字符串;其中SQL命令字符串指明了访问数据库的表名。但是在填充数据集对象DataSet.的时候,仍然需要指明表名。你可以不指定表名,系统会给你一个默认的表名Tablen(n是一个递增的数字)。
 我们认为这是一个缺陷。理想的结果应该是,在初始化DataSet对象的时候,如果不指定表名,默认的结果应该是在SQL命令字符串中指明的表名,而不是Tablen;除非你想显式的改变表的名称。
 造成目前这个结果的原因可能是由于SQL命令字符串是非结构化的,也即SQL命令字符串不能显式的设定表名。如果使用一个类来包装SQL命令字符串,那么SqlDataAdapter对象可以显式的知道表名,而DataSet对象也就可以使用这个表名作为默认的表名了。(不过这是ADO.NET设计人员的事情了:)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值