自己写的一个数据库操作类(C#)[原创]
来源:互联网 发布:线切割怎么绘图编程 编辑:程序博客网 时间:2024/04/30 20:09
前段时间,搞.net,有些数据库操作方面的事,要是每个都写那么多。那还不累死,就想写个类,把操作都封装起来,由于当时学习.net才1,2个星期,写得不是太好,现在也不想再改了,个人思维就定了,怎么改也差不多了,嘿嘿~~
首先在web.config文件中加这么一段:
<appSettings>
<add key="conn_handler" value="sqlserver.htm" />
<add key="conn_string" value="Persist Security Info=False;Data Source=localhost;Initial Catalog=northwind;User ID=xxxx;Password=xxxxxx;" />
<add key="conn_datebasetype" value="SQLServer" />
<add key="conn_schema" value="" />
<add key="conn_catalog" value="" />
</appSettings>
和<system.web></system.web>是平行的关系,这样做是在类中可以调用它,为什么就不多说了。
下面是这个类的全部代码:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.WebControls;
namespace DBOperate
{
/// <summary>
/// 创建一个数据库对象,以实现数据操作。
/// </summary>
public class DBObject
{
private string ConnectionString;
private SqlConnection objConn;
private string objSelectString;
private string objInsertString;
private string objUpdateString;
private string objDeleteString;
private SqlDataReader objDR;
private SqlCommand objCmd;
private string objErrMessage=null;
private string tempErrMessage=null;
private SqlDataAdapter objDA;
private DataSet objDS;
private DataView objDW;
private DataGrid objDataGrid;
private string objViewRowFilter=null;
private string objViewSort=null;
public DBObject()
{
//
// TODO: 在此处添加构造函数逻辑
//
DBConn();
}
private void DBConn()
{
ConnectionString =System.Configuration.ConfigurationSettings.AppSettings["conn_string"];
objConn = new SqlConnection(ConnectionString);
objConn.Open();
}
public void DBClose()
{
objConn.Close();
}
public string SelectString
{
set
{
objSelectString=value;
}
}
public string InsertString
{
set
{
objInsertString=value;
DBInsert();
}
}
public string UpdateString
{
set
{
objUpdateString=value;
DBUpdate();
}
}
public string DeleteString
{
set
{
objDeleteString=value;
DBDelete();
}
}
public string ErrMessage
{
get
{
tempErrMessage=objErrMessage;
objErrMessage=null;
return tempErrMessage;
}
}
public SqlDataReader DR
{
get
{
GetDR();
return objDR;
}
}
public void DRClose()
{
objDR.Close();
}
public void GetDR()
{
try
{
using (objCmd=new SqlCommand(objSelectString,objConn))
{
objDR=objCmd.ExecuteReader();
}
}
catch (System.Exception e)
{
objErrMessage+="数据读取出错:";
objErrMessage+="<br>";
objErrMessage+=e.Message;
objErrMessage+="<br>";
}
}
public void objDRRead()
{
objDR.Read();
}
public bool SelectEmpty()
{
if (objDR.Read()) return false;
else return true;
}
public string GetDRItem(string objDRItem)
{
return objDR[objDRItem].ToString();
}
public DataSet DS
{
get
{
try
{
using (objDA = new SqlDataAdapter(objSelectString,objConn))
{
objDS=new DataSet();
objDA.Fill(objDS);
}
}
catch (System.Exception e)
{
objErrMessage+="数据读取出错:";
objErrMessage+="<br>";
objErrMessage+=e.Message;
objErrMessage+="<br>";
}
return objDS;
}
}
public DataView DW
{
get
{
try
{
using (objDA = new SqlDataAdapter(objSelectString,objConn))
{
objDS=new DataSet();
objDA.Fill(objDS);
objDW=new DataView(objDS.Tables[0]);
objDW.RowFilter=objViewRowFilter;
objDW.Sort=objViewSort;
}
}
catch (System.Exception e)
{
objErrMessage+="数据读取出错:";
objErrMessage+="<br>";
objErrMessage+=e.Message;
objErrMessage+="<br>";
}
return objDW;
}
}
public DataGrid DGridBindDS
{
set
{
objDataGrid=value;
BindDS();
}
}
public DataGrid DGridBindDR
{
set
{
objDataGrid=value;
BindDR();
}
}
public string ViewRowFilter
{
set
{
if (objViewRowFilter==null)
{
objViewRowFilter=value;
}
else
{
objViewRowFilter+=" and ";
objViewRowFilter+=value;
}
}
}
public string ViewSort
{
set
{
objViewSort=value;
}
}
private void BindDR()
{
try
{
using (objCmd=new SqlCommand(objSelectString,objConn))
{
objDR=objCmd.ExecuteReader();
objDataGrid.DataSource=objDR;
objDataGrid.DataBind();
objDR.Close();
}
}
catch (System.Exception e)
{
objErrMessage+="数据读取出错:";
objErrMessage+="<br>";
objErrMessage+=e.Message;
objErrMessage+="<br>";
}
}
private void BindDS()
{
try
{
using (objDA = new SqlDataAdapter(objSelectString,objConn))
{
objDS=new DataSet();
objDA.Fill(objDS);
objDataGrid.DataSource=objDS;
objDataGrid.DataBind();
}
}
catch (System.Exception e)
{
objErrMessage+="数据读取出错:";
objErrMessage+="<br>";
objErrMessage+=e.Message;
objErrMessage+="<br>";
}
}
private void DBInsert()
{
using (objCmd=new SqlCommand(objInsertString,objConn))
{
try
{
objCmd.ExecuteNonQuery();
}
catch (System.Exception e)
{
objErrMessage+="数据插入出错:";
objErrMessage+="<br>";
objErrMessage+=e.Message;
objErrMessage+="<br>";
}
}
}
private void DBUpdate()
{
using (objCmd=new SqlCommand(objUpdateString,objConn))
{
try
{
objCmd.ExecuteNonQuery();
}
catch (System.Exception e)
{
objErrMessage+="数据更新出错:";
objErrMessage+="<br>";
objErrMessage+=e.Message;
objErrMessage+="<br>";
}
}
}
private void DBDelete()
{
using (objCmd=new SqlCommand(objDeleteString,objConn))
{
try
{
objCmd.ExecuteNonQuery();
}
catch (System.Exception e)
{
objErrMessage+="数据删除出错:";
objErrMessage+="<br>";
objErrMessage+=e.Message;
objErrMessage+="<br>";
}
}
}
}
}
使用方法:
先添加引用,再创建一个DBObject对象,假设是obj,创建对象的同时就和数据库连接上了,所以用完了调用一个DBClose()方法,关闭数据库连接。
属性说明:
SelectString,UpdateString,DeleteString,InsertString,看字面意思就知道了,给这四个属性赋值后,相应的操作就完成了,我已经写在属性的Set方法中了。
给SelectString赋值后,就可以返回我们要的东西了。可以返回dataset,dataview,datareader,还可以直接就把控件和数据库绑定,具体可以查看代码。
由于水平有限,写得不好,有好的意见可以给我留言,谢谢!
- 自己写的一个数据库操作类(C#)[原创]
- 我自己写的一个操作数据库的类
- 自己写的一个 ini 操作类
- 写一个自己的数据库帮助类
- 自己的一个数据库操作类
- 自己写的一个Perl的package(原创)
- androd SQLite 自己写的数据库操作类
- 自己写的数据库pdo操作类,显摆一下
- 自己写的一个JavaScript 操作XML 封装类
- 自己写的一个注册表操作类----相当实用
- [原创]写自己的字
- C#: 自己写的一个类似BackGroundWorker的类
- 自己写的个C#(ASP.NET)连接SQL数据库执行查询和修改操作的类
- 自己写的一个使用ADO操作ACCESS数据库的例子
- java 自己写的一个自动分析对象的mysql数据库操作工具
- 自己写一个数据库连接工具类
- C/C++连接数据库MySQL(自己写的一个通讯录软件,供大家学习交流)
- 一个写的非常漂亮的数据库操作类
- 一道面试题
- Namespaces in Delphi 2005 by Marc Rohloff
- 我的相册
- 我的心 不知还在不在?
- 红旗桌面4.0正式版最新使用方法和问题解答100例
- 自己写的一个数据库操作类(C#)[原创]
- 一晚上的心痛经历! 终于换来今天的网上皆识! 嘻嘻 自己最大的优点就是做白日梦------
- ProFTP登陆慢解决方法
- 编程十大好习惯
- Debian包方式安装PHPBB论坛。
- 12月22日 星期三 雨
- Microsoft经典平面广告"we see"
- 重装SQLServer之路之一
- 初始化系统失败