.NET的DAO类
来源:互联网 发布:parsley.js使用 编辑:程序博客网 时间:2024/05/16 14:39
写了一个.NET的简易的DAO类
1.可以支持带或不带参数的SQL
2.可以返回XML的结果集或dataset的结果集
using System;using System.Collections.Generic;using System.Text;using System.Configuration;using System.Data.SqlClient;using System.Data;using System.Data.Common;public class GeneralDAO{ static string conn = ConfigurationManager.ConnectionStrings ["ConnectionString"].ConnectionString; private SqlConnection Conn = null; public GeneralDAO() { } private void openConnection() { if (Conn == null) { Conn = new SqlConnection(conn); Conn.Open(); } else if (Conn.State == System.Data.ConnectionState.Closed) { Conn.Open(); } else if (Conn.State == System.Data.ConnectionState.Broken) { Conn.Close(); Conn.Open(); } } private void closeConnection() { if (Conn != null) { Conn.Close(); } } public string doSearch(string sqls) { try { DataSet dataSet = new DataSet(); openConnection(); String result = ""; SqlDataAdapter sqlDA = new SqlDataAdapter(sqls, Conn); sqlDA.Fill(dataSet, "Result"); result = dataSet.GetXml(); return result; } finally { closeConnection(); } } public string doSearch(string sqls, IList<DbParameter> sqlparameters) { try { openConnection(); String result=""; using (SqlDataAdapter sqlDA = new SqlDataAdapter(sqls, Conn)) { DataSet dataSet = new DataSet(); if (sqlparameters != null) { foreach (SqlParameter parameter in sqlparameters) { if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null)) { parameter.Value = DBNull.Value; } sqlDA.SelectCommand.Parameters.Add(parameter); } } sqlDA.Fill(dataSet, "Result"); sqlDA.SelectCommand.Parameters.Clear(); result = dataSet.GetXml(); } return result; } catch (SqlException ex) { throw new Exception(ex.Message); } finally { closeConnection(); } } public DataSet doSearchByDataset(string sqls) { try { DataSet dataSet = new DataSet(); openConnection(); SqlDataAdapter sqlDA = new SqlDataAdapter(sqls, Conn); sqlDA.Fill(dataSet, "Result"); return dataSet; } catch (SqlException ex) { throw new Exception(ex.Message); } finally { closeConnection(); } } public DataSet doSearchByDataset(string sqls, IList<DbParameter> sqlparameters) { try { openConnection(); DataSet dataSet = new DataSet(); using (SqlDataAdapter sqlDA = new SqlDataAdapter(sqls, Conn)) { if (sqlparameters != null) { foreach (SqlParameter parameter in sqlparameters) { if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null)) { parameter.Value = DBNull.Value; } sqlDA.SelectCommand.Parameters.Add(parameter); } } sqlDA.Fill(dataSet, "Result"); sqlDA.SelectCommand.Parameters.Clear(); return dataSet; } } catch (SqlException ex) { throw new Exception(ex.Message); } finally { closeConnection(); } } public bool doExec(string sqls) { bool result = false; openConnection(); SqlTransaction trans = Conn.BeginTransaction(); try { SqlCommand sqlcom = new SqlCommand(); sqlcom.CommandText = sqls; sqlcom.Connection = Conn; sqlcom.Transaction = trans; sqlcom.ExecuteNonQuery(); trans.Commit(); result = true; } catch (SqlException ex) { result = false; throw new Exception(ex.Message); } finally { closeConnection(); } return result; } public bool doExec(string sqls, IList<DbParameter> sqlparameters) { bool result = false; openConnection(); SqlTransaction trans = Conn.BeginTransaction(); try { using (SqlCommand sqlcom = new SqlCommand()) { if (sqlparameters != null) { foreach (SqlParameter parameter in sqlparameters) { if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null)) { parameter.Value = DBNull.Value; } sqlcom.Parameters.Add(parameter); } } sqlcom.CommandText = sqls; sqlcom.Connection = Conn; sqlcom.Transaction = trans; sqlcom.ExecuteNonQuery(); trans.Commit(); result = true; } } catch (SqlException ex) { trans.Rollback(); result = false; throw new Exception(ex.Message); } finally { closeConnection(); } return result; }}
使用:
string sqls = "insert into users(user_name) values(@username)"; List<DbParameter> paramlist = new List<DbParameter>(); SqlParameter p1 = new SqlParameter("@username", TextBox2.Text.Trim()); paramlist.Add(p1); GeneralDAO dao = new GeneralDAO(); dao.doExec(sqls, paramlist);
或:
GeneralDAO dao = new GeneralDAO(); dao.doSearch("select * from users");
- .NET的DAO类
- .Net DAO 层设计遇到的问题
- iBatis.Net的dao.config文件
- Z02的DAO类
- DAO的java类
- DAO基类的实现
- DAO工厂类的实现
- 编写通用的DAO类
- hibernate的数据库连接dao类
- Dao的支持类 ----JdbcDaoSupport
- DAO、实体类的特征
- ADO、ADO.net、DAO
- 提升DAO.NET性能
- IBatis.Net学习笔记三--两种常用的DAO
- 微软的 DAO,RDO,OLE DB, ADO,ADO.NET
- DAO类
- 通过看spring.net 的英文文档,整理了spring.net.dao 支持的数据库
- JAVA类DAO类的作用
- vmm debug problem
- 触碰模式下的listview的选中项背景高亮
- 计算机经典书籍
- python-message v0.2.x 全接触
- Linux 信号处理
- .NET的DAO类
- 编程练习-二叉树(求二叉树的高度)
- 回家过年感想
- Assinging Values Using Write to
- AIR 里动态修改style的问题
- Android GPS架构分析(转载一)
- 磁盘和驱动管理(1)
- List of tools for static code analysis
- 【函数指针】学习---转载