asp.net数据库操作类(一)

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条数据)
for ( int  i= 0 ;i<dt.Rows.Count;i++){
    
string  sql = "" ;
    Common.ExecuteNonQuery(sql);
//这里做更新操作
}

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

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

转载于:https://www.cnblogs.com/urols-jiang/p/3281247.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值