咳,老明宇写了一个SqlServer的封装类,简单实用,有基础有兴趣的宝宝们,可以参考一下!
一共分为三个主要方法:ExecuteScalar()方法:返回结果集中的第一行第一列;ExecuteReader()方法:返回DataReader对象;ExecuteNonQuery()方法:执行增,删,改操作,返回受影响的行数。
注:为了方便大家理解代码分为三个部分,都是在 class Zhuang{} 类中编写的
代码部分(如下):
必要的包还是要提前导入的呦!
using System.Data.SqlClient;
using System.Data;
第一部分:
//属性连接数据库语句
private const string CONNSTR = "server=.;database=Demo2;uid=sa;pwd=sa";
//Connection属性的封装
private SqlConnection _conn;
public SqlConnection Conn {
get {
if (_conn != null)
{
//为了安全,连接数据库时如果数据库连接断开或者正在打开,我们都先将其关闭
if (_conn.State == ConnectionState.Broken || _conn.State == ConnectionState.Open)
{
_conn.Close();
}
}
else {
//连接数据库
_conn = new SqlConnection(CONNSTR);
}
_conn.Open();
return _conn;
}
}
第二部分:
//Command属性的封装
private SqlCommand _cmd;
public SqlCommand Cmd {
get {
_cmd = new SqlCommand();
//使用Conn的数据库连接
_cmd.Connection = Conn;
return _cmd;
}
}
第三部分:
//查询ExecuteReader
public SqlDataReader ExecuteReader(string sql) {
SqlCommand cmd = Cmd;
cmd.CommandText = sql;
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
//在调用ExecuteReader()方法时请注意,数据库并没有关闭,在调用使用完成之后要将其关闭
//关闭代码为:reader.Close();
}
//查询ExecuteScalar
public object ExecuteScalar(string sql) {
SqlCommand cmd = Cmd;
cmd.CommandText = sql;
object obj = cmd.ExecuteScalar();
//关闭数据库,返回查询对象
cmd.Connection.Close();
return obj;
}
//增,删,改ExecuteNonQuery
public int ExecuteNonQuery(string sql) {
SqlCommand cmd = Cmd;
cmd.CommandText = sql;
int result = cmd.ExecuteNonQuery();
//关闭数据库,返回受影响行数
cmd.Connection.Close();
return result;
}
上面代码没有加入异常捕捉,有需要的宝宝们可以在此基础上,自行延申!
老明宇主页有用C#数据库写的吃货联盟源码,有兴趣的可以看一看!
对于初学者来说,编程几乎没有捷径,就是多写,多看,多练,以上代码老明宇希望大家都能掌握。