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

来源:互联网 发布:ftp客户端源码 编辑:程序博客网 时间:2024/04/28 23:20

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 class Base class Connection DbConnection Command DbCommand Parameter DbParameter DataReader DbDataReader Dataadapter DbDataAdapter Transaction DbTransaction
比如说SqlConnection和OracleConnection类都是继承至基类DbConnection。
ADO.NET 2.0同时提供一系列的“工厂”类帮助动态创建这些基类的实例。比如SqlClientFactory类可以创建SqlConnection, SqlCommand等等的实例,列举该类的一些方法如下:
Factory class method Purpose 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

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 蘑菇街没有流量怎么办 淘宝店没有生意怎么办 蘑菇街直播封号怎么办 淘宝忘记给赠品怎么办 直通车的占比高怎么办 赠品质量有问题怎么办 淘宝赠品有问题怎么办 顾客叫送赠品怎么办 淘宝展现量低怎么办 dw模板不更新怎么办 闭水试验漏水怎么办 绘声绘影试用过了怎么办 探探被选成试用新版用户怎么办 淘宝被限制评论怎么办 信用钱包套路了怎么办 农业银行还贷迟了一天怎么办 淘宝限购一件怎么办 小米盒子电视打不开怎么办 手机淘宝总是卡怎么办 淘宝相机不能用怎么办 作业盒子没声音怎么办 作业盒子闪退怎么办 双面羊绒缩水了怎么办 作业盒子为静音怎么办 没有上进心的人怎么办 孩子不听老人话怎么办 淘宝分销没有视频怎么办 孕妇血糖稍高怎么办 苹果6s 卡怎么办 花呗额度用完怎么办 手机百度网站无法访问怎么办 手机应用删不了怎么办 华为p4屏幕切换怎么办 手机搜不到设置怎么办 华为手机设置成怎么办 手机截屏模糊怎么办 图片上传不清晰怎么办 手机截屏不清楚怎么办 恢复的照片模糊怎么办 手机照片虚了怎么办 美团充话费不到账怎么办