首页 > 代码库 > 常用的增删改查函数
常用的增删改查函数
无论做什么系统,涉及到数据库肯定离不开增删改查,下面是自己写的有关数据库增删改查封装的函数,仅供参考。
using System; using System.ComponentModel; using System.Collections; using System.Diagnostics; using System.Data; using System.Data.SqlClient; using System.Configuration; using OnLineExam.HelperClass; using OnLineExam.CommonClass; namespace OnLineExam.DataBaseClass { // 数据库接口类 public class DataBase { //私有变量,数据库连接 protected SqlConnection Connection; protected string ConnectionString; //构造函数 public DataBase() { ConnectionString = "Data Source=(local);DataBase=mrOnLineExam;User ID=sa;Password=123456;"; } //保护方法,打开数据库连接 private void Open() { //判断数据库连接是否存在 if (Connection == null) { //不存在,新建并打开 Connection = new SqlConnection(ConnectionString); Connection.Open(); } else { //存在,判断是否处于关闭状态 if (Connection.State.Equals(ConnectionState.Closed)) Connection.Open(); //连接处于关闭状态,重新打开 } } //公有方法,关闭数据库连接 public void Close() { if (Connection.State.Equals(ConnectionState.Open)) { Connection.Close(); //连接处于打开状态,关闭连接 } } /// <summary> /// 析构函数,释放非托管资源 /// </summary> ~DataBase() { try { if (Connection != null) Connection.Close(); } catch{} try { Dispose(); } catch{} } //公有方法,释放资源 public void Dispose() { if (Connection != null) // 确保连接被关闭 { Connection.Dispose(); Connection = null; } } //公有方法,根据Sql语句,返回是否查询到记录 public bool GetRecord(string XSqlString) { Open(); SqlDataAdapter adapter = new SqlDataAdapter(XSqlString, Connection); DataSet dataset = new DataSet(); adapter.Fill(dataset); Close(); if (dataset.Tables[0].Rows.Count > 0) { return true; } else { return false; } } //公有方法,返回Sql语句获得的数据值 //SqlString的格式:select count(*) from XXX where ... // select max(XXX) from YYY where ... public int GetRecordCount(string XSqlString) { string SCount; Open(); SqlCommand Cmd = new SqlCommand(XSqlString,Connection); SCount = Cmd.ExecuteScalar().ToString().Trim(); if (SCount=="") SCount="0"; Close(); return Convert.ToInt32(SCount); } //公有方法,根据XWhere更新数据表XTableName中的某些纪录 //XTableName--表名 //XHT--哈希表,键为字段名,值为字段值 public DataSet AdvancedSearch(string XTableName, Hashtable XHT) { int Count = 0; string Fields = ""; foreach(DictionaryEntry Item in XHT) { if (Count != 0) { Fields += " and "; } Fields += Item.Key.ToString(); Fields += " like '%"; Fields += Item.Value.ToString(); Fields += "%'"; Count++; } Fields += " "; string SqlString = "select * from " + XTableName + " where " + Fields; Open(); SqlDataAdapter Adapter = new SqlDataAdapter(SqlString, Connection); DataSet Ds = new DataSet(); Adapter.Fill(Ds); Close(); return Ds; } //私有方法,获得一个用来调用存储过程的SqlCommand //输入: // ProcName - 存储过程名 // Params - 用来调用存储过程的参数表 private SqlCommand CreateCommand(string ProcName, SqlParameter[] Prams) { Open(); SqlCommand Cmd = new SqlCommand(ProcName, Connection); Cmd.CommandType = CommandType.StoredProcedure; if (Prams != null) { foreach (SqlParameter Parameter in Prams) Cmd.Parameters.Add(Parameter); } return Cmd; } //私有方法,执行SQL命令 //输入: // StrName - 存储过程名 // Params - 用来调用存储过程的参数表 private SqlCommand CreateStrCommand(string StrName, SqlParameter[] Prams) { Open(); SqlCommand Cmd = new SqlCommand(StrName, Connection); Cmd.CommandType = CommandType.Text; if (Prams != null) { foreach (SqlParameter Parameter in Prams) Cmd.Parameters.Add(Parameter); } return Cmd; } //公有方法,实例化一个用于调用存储过程的参数 //输入: // ParamName - 参数名称 // DbType - 参数类型 // Size - 参数大小 // Direction - 传递方向 // Value - 值 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 (Value != null) Param.Value = http://www.mamicode.com/Value;>常用的增删改查函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。