在的帮忙看看下面数据库连接类代码,提些意见!Thanks!

szfly 2003-11-11 05:49:09
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace SqlDBClass
{
public class DBClass
{
private string strCn;
private SqlConnection Cn=new SqlConnection();
private SqlDataAdapter da=new SqlDataAdapter();
private DataSet ds=new DataSet();
private SqlCommand cmd=new SqlCommand();

public DBClass() //构造函数初始化
{
//构造函数内初始化连接字符串
strCn="server=sky;database=skydb1;uid=sa;pwd=ooooo";
Cn.ConnectionString=strCn;
}

public void Open() //打开连接
{
if(Cn.State.ToString()=="Closed")
{
try
{
Cn.Open();
}
catch
{
MessageBox.Show("无法连接数据库,请检查网络和连接字符串!","警告",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
}

public void Close() //关闭连接
{
if(Cn.State.ToString()=="Open")
{
try
{
Cn.Close();
}
catch
{
MessageBox.Show("无法关闭数据库连接!","警告",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
}

public DataSet ReturnDataSet(string strSql,string tableName) //返回DataSet记录集
{
try
{
da=new SqlDataAdapter(strSql,Cn);
da.Fill(ds,tableName);
}
catch
{
MessageBox.Show("请检查Sql语句:"+strSql,"警告",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
return ds;
}

public void ExecuteNonQuery(string strSql) //执行不返回记录集的SQL语句
{
Open(); //打开数据库连接
try
{
cmd.Connection=Cn;
cmd.CommandText=strSql;
cmd.ExecuteNonQuery();
}
catch
{
MessageBox.Show("数据库连接未打开或检查Sql语句:"+strSql,"警告",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
Close(); //关闭数据库连接
}

public Object ExecuteScalar(string strSql) //执行返回单项数据的SQL语句
{
Open(); //打开数据库连接
Object result=null;
try
{
cmd.Connection=Cn;
cmd.CommandText=strSql;
result=cmd.ExecuteScalar();
}
catch
{
MessageBox.Show("数据库连接未打开或检查Sql语句:"+strSql,"警告",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
Close(); //关闭数据库连接
return result;
}

public SqlDataReader ExecuteReader(string strSql) //返回SqlDataReader记录集
{
Open(); //打开数据库连接
SqlDataReader dr=null;
try
{
cmd.Connection=Cn;
cmd.CommandText=strSql;
dr=cmd.ExecuteReader();
}
catch
{
MessageBox.Show("数据库连接未打开或检查Sql语句:"+strSql,"警告",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
Close(); //关闭数据库连接
return dr;
}
}
}
...全文
29 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wincore 2003-11-11
  • 打赏
  • 举报
回复
那就不客气了
private SqlDataAdapter da=new SqlDataAdapter();
private DataSet ds=new DataSet();
private SqlCommand cmd=new SqlCommand();

用函数内的局部变量,用完后就释放!

public SqlDataReader ExecuteReader(string strSql) //返回SqlDataReader记录集
我觉得返回DataSet 更好点

szfly 2003-11-11
  • 打赏
  • 举报
回复
............
atlove 2003-11-11
  • 打赏
  • 举报
回复
0

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧