Hi Boy,

我现在需要使用asp.net操作access数据库,你来做个。boy听后就开始百度了,最后找到了一个比较好的方法。如下:

 C# Code 
1
2
3
4
5
6
7
 
<appSettings>
    <!-- 连接字符串是否加密 -->
    <add key="ConStringEncrypt" value="false"/>
    <!-- access 连接字符串-->
    <add key="ConnectionString" value="provider=microsoft.jet.oledb.4.0;data source="/>
    <add key="dbPath" value="~/App_Data/ems.mdb"/>
  </appSettings>

后端代码:

 C# Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
string connectionString = 
        ConfigurationManager.AppSettings["ConnectionString"].ToString()+ 
        HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["dbPath"]);
OleDbConnection conn = new OleDbConnection(connectionString);
try
{
    conn.Open();
    string sql = "select * from Table";
    OleDbDataAdapter myadapter = new OleDbDataAdapter(sql, conn);
    DataSet ds = new DataSet();
    myadapter.Fill(ds);
}
catch (Exception ee){}
finally{
    conn.Close();
}

“恩,不错!”manager说,“但是你希望每次操作数据库都要这么写吗?新建一个Connection对象,新建一个Command,然后对数据库操作?”

Boy,Think......之后有了如下代码:

 C# Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
public class Common{
    ......
     public static DataSet Query(string sql){
        using (OleDbConnection connection = new OleDbConnection(connectionString)){
            DataSet ds = new DataSet();
            try{
                connection.Open();
                OleDbDataAdapter myadapter = new OleDbDataAdapter(sql, connection);
                DataSet ds = new DataSet();
                myadapter.Fill(ds);
            }
            catch (System.Data.OleDb.OleDbException ex){
                throw new Exception(ex.Message);
            }
            return ds;
        }
    }
    public static int ExecuteNonQuery(string){
        ......
    }
}

  “恩,不错,这样每次操作只需要调用Common类的Query方法了,大大的简化了数据库的操作。”manager说道。

Boy心中非常高兴,听到赞赏。

“但是,这个还是存在着问题。”manager说道,“什么问题”,Boy疑惑的问道。

  “你看这段代码,”

 C# Code 
1
2
3
4
5
 
DataTable dt = ...;(假设这里datatable有100条数据)
;i<dt.Rows.Count;i++){
    string sql ="";
    Common.ExecuteNonQuery(sql);//这里做更新操作
}

  “你看这段代码,执行100次更新操作,就执行(新建Connection对象,Command对象...)这种操作了100次,期间新建,销毁这些对象了100次。就是说,随着对数据库的操作次数的提升,付出的性能代价就越大。明白吗?”,manager问道。

Boy陷入了沉思中......

asp.net数据库操作类(一)的更多相关文章

  1. asp.net数据库操作类(二)

    第二版的数据库访问类出炉了:  C# Code  123456789101112131415161718192021222324252627282930313233343536373839404142 ...

  2. 自己封装的ASP.NET的MYSQL的数据库操作类

    /** * 作者:牛腩 * 创建时间:2010年3月7日17时35分 * 类说明:对MYSQL数据库的操作类 */ using System; using System.Data; using MyS ...

  3. 【知识必备】ezSQL,最好用的数据库操作类,让php操作sql更简单~

    最近用php做了点小东东,用上了ezSQL,感觉真的很ez,所以拿来跟大家分享一下~ ezSQL是一个非常好用的PHP数据库操作类.著名的开源博客WordPress的数据库操作就使用了ezSQL的My ...

  4. Android打造属于自己的数据库操作类。

    1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要 ...

  5. PHP 数据库操作类:ezSQL

    EZSQL类介绍: 下载地址:http://www.jb51.net/codes/26393.htmlezsql是一个小型的快速的数据库操作类,可以让你很容易地用PHP操作各种数据库( MySQL.o ...

  6. 通用数据库操作类,前端easyui-datagrid,form

    实现功能:     左端datagrid显示简略信息,右侧显示选中行详细信息,数据库增删改 (1)点击选中行,右侧显示详细信息,其中[新增].[修改].[删除]按钮可用,[保存]按钮禁用 (2)点击[ ...

  7. php : mysql数据库操作类演示

    设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...

  8. php MySQL数据库操作类源代码

    php MySQL数据库操作类源代码: <?php class MySQL{ private $host; //服务器地址 private $name; //登录账号 private $pwd; ...

  9. 一个基于PDO的数据库操作类(新) 一个PDO事务实例

    <?php /* * 作者:胡睿 * 日期:2011/03/19 * 电邮:hooray0905@foxmail.com * * 20110319 * 常用数据库操作,如:增删改查,获取单条记录 ...

随机推荐

  1. mysql----show slave status \G 说明

    show slave status \G 可以用来查看mysql 的复制状态,有些列名所表达的意思不太明确,现整理如下: 1. Slave_IO_State:ID线程的状态,如果master 的所有变 ...

  2. Nutch + solr 这个配合不错哦

    因为朋友需要,所以把这个开源组合放在一起试用了下,正在弄,先Mark下. 用的是Nutch1.9,这个比较新,资料比较少,基本上就是用原来的英文WIKI. 首先要注意的是,不要试着在windows下做 ...

  3. github orgmode

    http://blog.nicky1605.com/application-github-page.html http://dayigu.github.io/WhyUseOrgModeToWriteB ...

  4. C# XML序列化帮助类代码

    public static class XmlHelper { private static void XmlSerializeInternal(Stream stream, object o, En ...

  5. SoftLayer®凭借Flex Images™消融物理与虚拟服务器之间的界线

    网摘文档留存,日后有用; 达拉斯--(美国商业资讯)--随着SoftLayer Flex Images的推出,物理与虚拟IT资源之间的界线正在变得模糊.Flex Images让用户能够捕捉.复制并存储 ...

  6. Unity 图片分割将spirte保存在本地

    如果你拿到的是一张整图,你想分割之后使用NGUI sprite来使用!  下面就能解决的需求. 步骤: 1. 使用Unity自带的spirte进行分割图片 2. 使用代码把分割出来的2DSpirte转 ...

  7. paip.c++ qt 目录遍历以及文件操作

    paip.c++ qt 目录遍历以及文件操作 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.net/a ...

  8. 解决ie6 闪动的问题

    /*解决ie6 闪动的问题*/ html,html body{_background-image:url(about:blank);_background-attachment:fixed}

  9. HDU 5792 World is Exploding

    题意: 给出n代表序列的长度,接下来给出序列A.找出abcd满足abcd互不相等1<=a<b<c<d<=n的同时A[a]<A[b],A[c]>A[d],问这样 ...

  10. js数字验证

    1.JS判断只能是数字和小数点 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g, ...