本站首页    管理页面    写新日志    退出

The Neurotic Fishbowl

[学习公共库]Database类
麦林 发表于 2007/5/31 21:43:29

using System;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.ComponentModel;using System.Diagnostics;using System.Collections;/// <summary>/// Data 的摘要说明/// </summary>public class Database : IDisposable {  // connection to data source  private SqlConnection con;    public int RunProc(string procName) {   SqlCommand cmd = CreateCommand(procName, null);   cmd.ExecuteNonQuery();   this.Close();   return (int)cmd.Parameters["ReturnValue"].Value;  }   public int RunProc(string procName, SqlParameter[] prams) {   SqlCommand cmd = CreateCommand(procName, prams);   cmd.ExecuteNonQuery();   this.Close();   return (int)cmd.Parameters["ReturnValue"].Value;  }   public void RunProc(string procName, out SqlDataReader dataReader) {   SqlCommand cmd = CreateCommand(procName, null);   dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);  }   public void RunProc(string procName, SqlParameter[] prams, out SqlDataReader dataReader) {   SqlCommand cmd = CreateCommand(procName, prams);   dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);  }         public void RunProc(string procName, SqlParameter[] prams, out DataSet dataset)        {            SqlCommand cmd = CreateCommand(procName, prams);            //create the DataAdapter            SqlDataAdapter da = new SqlDataAdapter(cmd);            //fill the DataSet using default values for DataTable names, etc.            dataset = new DataSet();            da.Fill(dataset);            this.Close();        }         public void RunProc(string procName, out DataSet dataset)        {            SqlCommand cmd = CreateCommand(procName, null);            //create the DataAdapter            SqlDataAdapter da = new SqlDataAdapter(cmd);            //fill the DataSet using default values for DataTable names, etc.            dataset = new DataSet();            da.Fill(dataset);            this.Close();        }     private SqlCommand CreateCommand(string procName, SqlParameter[] prams) {   // make sure connection is open   Open();    //command = new SqlCommand( sprocName, new SqlConnection( ConfigManager.DALConnectionString ) );   SqlCommand cmd = new SqlCommand(procName, con);   cmd.CommandType = CommandType.StoredProcedure;    // add proc parameters   if (prams != null) {    foreach (SqlParameter parameter in prams)     cmd.Parameters.Add(parameter);   }      // return param   cmd.Parameters.Add(    new SqlParameter("ReturnValue", SqlDbType.Int, 4,    ParameterDirection.ReturnValue, false, 0, 0,    string.Empty, DataRowVersion.Default, null));    return cmd;  }   private void Open() {   // open connection   if (con == null) {    con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]);    con.Open();   }      }   public void Close() {   if (con != null)    con.Close();  }   public void Dispose() {   // make sure connection is closed   if (con != null) {    con.Dispose();    con = null;   }      }   public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value) {   return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);  }     public SqlParameter MakeOutParam(string ParamName, SqlDbType DbType, int Size) {   return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, null);  }     public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value) {   SqlParameter param;    if(Size > 0)    param = new SqlParameter(ParamName, DbType, Size);   else    param = new SqlParameter(ParamName, DbType);    param.Direction = Direction;   if (!(Direction == ParameterDirection.Output && Value == null))    param.Value = Value;    return param;  } }

阅读全文(2080) | 回复(0) | 编辑 | 精华

 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
 

The Neurotic Fishbowl

.: 公告

fighting for the work!


Bloginess

«September 2025»
123456
78910111213
14151617181920
21222324252627
282930

.: 我的分类(专题)

首页(449)
文字感悟(103)
学习公共库(61)
生活体会(100)
资源收集(14)
.NET-Winform(27)
音乐文字(15)
心情小记(119)
SQL问题解决(10)


In the Bowl

.: 最新日志

C#打印代码
你看到的我是蓝色的
即将逝去的3月
这个假期
两个月过去
表名存在其他表时获取数据
条码打印
Remoting的用法
INI文件用法


.: 最新回复

回复:条码打印
回复:条码打印
回复:即将逝去的3月
回复:cookie对象使用
回复:条码打印
回复:JSP学习(字符串比较)
回复:应收应付核销规则及常见问题(续)
回复:两个月过去
回复:两个月过去


The Fishkeeper
blog名称:栗色?蓝色?
日志总数:449
评论数量:201
留言数量:37
访问次数:2260233
建立时间:2006年5月16日



Text Me

.: 留言板

签写新留言

链接完成
回:loseVC
来喽~
转转......
新年啦
对自己说
祝福
回:佑手
WO


Other Fish in the Sea

.: 链接


loseVC's BLOG
Collapsar_feel
布衣加针
C#and.Net
Kinogam Web




站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144781904 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号