ASP.NET学习笔记(2007-5-25)

1、通用数据访问层源代码:BinaryIntellect 的 Database Helper for .NET 2.0 (尚待研究)
    下载地址:http://www.binaryintellect.net/products/e0d28f9c-238e-43ae-a00b-59ddc33bfa87.aspx
    有人评价是很好的Microsoft's DAAB 2.0(尚待研究)替换品。
  《Developing generic data access layer using ADO.NET 2.0》也有相关分析(英文)
    这里有人简单地分析了一下该源代码(类)
的内容:http://www.cnblogs.com/chf/articles/614852.html (未看)
    注:以上内容是在学习provider模型时发现的(ASP.NET 2.0在全部其架构中都利用提供者模型。):http://www.cnblogs.com/fengmk2/archive/2006/11/25/572176.html (尚待看完)

2、发现一个快速实现数据库操作块的工具:Codehelper v3.0 代码助手,但没下载到,有待研究

3、刚刚学到一个语法:
    public class DatabaseHelper:IDisposable
    {
        public DatabaseHelper(string connectionstring,Providers provider)
        {
        }

        public DatabaseHelper(string connectionstring): this(connectionstring, Providers.SqlServer)
        {
        // 这里的this用法指代调用类本身的一个构造函数,即前面那个构造函数。
        }
    }

 4、两个方法:
DbCommand.ExecuteScalar 方法 :
执行查询,并返回查询所返回的结果集中第一行的第一列。所有其他的列和行将被忽略。
  适用:该方法用于执行只返回单个值的SELECT查询和存储过程,常用于Count(),Min(),Max()等。

DbCommand.ExecuteNonQuery 方法 :对连接对象执行 SQL 语句。返回值为受影响的行数。可以使用 ExecuteNonQuery 执行编录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句更改数据库中的数据。虽然 ExecuteNonQuery 不返回任何行,但是映射到参数的任何输出参数或返回值都会用数据进行填充。对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于其他所有类型的语句,返回值为 -1。

5、 ADO.NET 2.0中,更偏向于用继承而不是使用接口:

Data provider classBase class
ConnectionDbConnection
CommandDbCommand
ParameterDbParameter
DataReaderDbDataReader
DataadapterDbDataAdapter
TransactionDbTransaction

比如说SqlConnection和OracleConnection类都是继承至基类DbConnection。
ADO.NET 2.0同时提供一系列的“工厂”类帮助动态创建这些基类的实例。比如SqlClientFactory类可以创建SqlConnection, SqlCommand等等的实例,列举该类的一些方法如下:
Factory class methodPurpose
CreateConnection Creates an instance of SqlConnection class
CreateCommand Creates an instance of SqlCommand class
CreateParameter Creates an instance of SqlParameter class
CreateDataAdapter Creates an instance of SqlDataAdapter class
CreateCommandBuilder Creates an instance of SqlCommandBuilder class

参考代码:
public void ExecuteQuery(string sql,string provider)
{
DbConnection cnn=null;
DbCommand cmd=null;
DbProviderFactory factory = null;
switch(provider)
{
   case "sqlclient":
   factory = SqlClientFactory.Instance;
   break;
   case "oracleclient":
   factory = OracleClientFactory.Instance;
   break;
}
cnn = factory.CreateConnection();
cmd = factory.CreateCommand();

//now use cnn and cmd as usual to execute a query
}

6、《小菜编程成长记》可以看看:
http://cj723.cnblogs.com/

7、还有NBearV3 Step by Step教程——ORM篇 也可以看看:
http://www.cnblogs.com/teddyma/archive/2006/11/03/549118.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值