惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Exploit Database - CXSecurity.com
A
Arctic Wolf
K
Kaspersky official blog
T
Threat Research - Cisco Blogs
PCI Perspectives
PCI Perspectives
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
U
Unit 42
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy & Cybersecurity Law Blog
O
OpenAI News
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
Cisco Blogs
AWS News Blog
AWS News Blog
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
美团技术团队
T
Threatpost
S
Schneier on Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
Cyber Attacks, Cyber Crime and Cyber Security
Last Week in AI
Last Week in AI
C
CERT Recently Published Vulnerability Notes
Blog — PlanetScale
Blog — PlanetScale
C
Cybersecurity and Infrastructure Security Agency CISA
F
Full Disclosure
博客园_首页
N
Netflix TechBlog - Medium
Security Latest
Security Latest
有赞技术团队
有赞技术团队
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Register - Security
The Register - Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Recent Announcements
Recent Announcements
博客园 - Franky
P
Palo Alto Networks Blog
Project Zero
Project Zero
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
H
Help Net Security
Hacker News: Ask HN
Hacker News: Ask HN
Cisco Talos Blog
Cisco Talos Blog
H
Heimdal Security Blog
The Hacker News
The Hacker News
博客园 - 【当耐特】
GbyAI
GbyAI

博客园 - 冰原雪龙

IIS7和json 添加行的VBA小程序 - 冰原雪龙 - 博客园 SQL Server 2005 输入框不能输入中文问题 如何恢复Windows Vista/XP双启动菜单 flex2,富客户端,B/S结构的新方向?(原创) 修复VISTA启动菜单故障(原创) 更改SQL表的所有者 项目申报系统策划 C#中调用IE打开某文档 - 冰原雪龙 - 博客园 最近学习AJAX和版本控制,收集到的网站 终于用上了版本控制工具Subversion,感觉真不错。 系统:远程登录用户管理小技巧 终于考完研了,是该把一些积了一个月的事了结一下的时候了。 ·转贴·正则表达式的应用技巧 [转贴]正则表达式从入门到精通 今年一定要考上研究生,努力看英语中……编程方面也要努力 好不容易,明天终于要回家了 不知不觉,离创建这个BLOG已经过了不短的时间 刚建了Blog,写个东西留念
ASP.Net下的数据访问层的封装(C#)
冰原雪龙 · 2005-09-28 · via 博客园 - 冰原雪龙

晚上有点时间,整理一下自己的文档,写点东西记念一下。

我们操作数据库的时候,必不可少地要写连接字符串,其中包括设置用户名,密码,服务器名等等……还要执行SQL语句,得到它的返回值。而这些操作,每次都要做,这就给我们提出了封装的需求。

ASP.NET中对于数据库的连接字符串,可以放在Web.config中,类似下面的形式:

 <!--这是一个自定义的连接字符串配置文件-->
 <appSettings>
  <add key="server" value="localhost" />
  <add key="database" value="ittsdb" />
  <add key="username" value="k{wyhfzeiatg" />
  <add key="password" value="k{wyhfzeiatg" />
  <add key="virtualpath" value="//itts" />
 </appSettings>

有了这些数据,就可以在ASPX中封装了,偶们先定义一个Class,形式如下:

public class DBA_SqlServer
{
  private System.Data.SqlClient.SqlConnection m_SqlConnection;

  public DBA_SqlServer(string DBConnectionString)
  {
   m_SqlConnection=new System.Data.SqlClient.SqlConnection(DBConnectionString);
  }

  public DBA_SqlServer()
  {
   m_SqlConnection=new System.Data.SqlClient.SqlConnection();
   m_SqlConnection.ConnectionString=GetSqlConnectionString();
  }

  public override System.Data.DataTable ExecuteDataTable(string sqlstr)
  {
   if(sqlstr=="")
    return null;
   //m_SqlConnection.Open();
   System.Data.SqlClient.SqlDataAdapter sqlda=new System.Data.SqlClient.SqlDataAdapter(sqlstr,m_SqlConnection);
   System.Data.DataTable dt1=new System.Data.DataTable();
   sqlda.Fill(dt1);
   sqlda.Dispose();
   sqlda=null;
   //m_SqlConnection.Close();
   return dt1;
  }

  static public string GetSqlConnectionString()
  {
   string connstr,servername,databasename,username,password;
   servername=ConfigurationSettings.AppSettings["server"];
   databasename=ConfigurationSettings.AppSettings["database"];
   username=DeEncryptStr(System.Configuration.ConfigurationSettings.AppSettings["username"]);
   password=DeEncryptStr(System.Configuration.ConfigurationSettings.AppSettings["password"]);
   connstr="Persist Security Info=False;database="+databasename+";server="+servername+";user id="+username+";password="+password;
   return connstr;
  }

}
上面的GetSqlConnectionString()函数,用来获取Web.Config中的连接字符串信息,然后生成连接字符串。

而ExecuteDataTable(string sqlstr),是用来执行SQL语句,获得返回的DataTable

使用这个类,可以按如下方式:
new DBA_SqlServer().ExecuteDataTable("select * from 表名");
就可以执行SQL语句,返回所需要的DataTable,是不是很方便呢?