/// <summary>
/// SQL操作类
/// </summary>
class Mydata
{
SqlConnection conn;
public Mydata()
{
string constr = "server=;database=userinfo; uid=sa; pwd=";//使用本类前请输入连接字符串
conn = new SqlConnection(constr);
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
}
/// <summary>
/// 执行查询语句并返回DataSet数据集
/// </summary>
/// <param name="cmdstr"></param>
/// <returns></returns>
public DataSet Getdataset(string cmdstr)
{
SqlDataAdapter myadapter = new SqlDataAdapter(cmdstr, conn);
DataSet result = new DataSet();
myadapter.Fill(result);
conn.Close();
return result;
}
public SqlDataReader Getdatareader(string cmdstr)
{
SqlCommand cmd = new SqlCommand(cmdstr, conn);
SqlDataReader result = cmd.ExecuteReader();
return result;
} /// <summary>
/// 语句执行方法,并返回影响的行数
/// </summary>
/// <param name="cmdstr"></param>
/// <returns></returns>
public int Sqlcmd(string cmdstr)
{
SqlCommand cmd = new SqlCommand(cmdstr, conn);
int result = (int)cmd.ExecuteScalar();
conn.Close();
return result;
} }
解决方案 »
- 编写一个即时聊天系统
- C#进度条,,急
- 空值对比,数据库中ws2m wd2m为smallint型,但是却出现null类型的值
- 求一正则表达式,判断算术式!
- 以下 C 代码转换成 C# (高手进..)
- 版主:C#Ado.net读取Excel数据格式为何出错?
- Socket和TcpClient怎样才能知道跟对方断开了没有?(高分)
- 怎样将"20*10+5*20"这样的字符串表达式"计算"后返回结果300?
- 困扰多天的问题,请教诸位高手,着急!
- C# 钩子函数 难吗?看了2天了 基本没啥头绪 用处大不?
- 急,求帮助!就是通过判断数据库某个值是否为空来设定button可用与否
- 新手求指点函数书写习惯问题
其他几个方法都要用using 因为如果报异常了的话你就执行不到关闭数据库连接部分的代码了 那就是种非托管资源的浪费 而如果用了using .net内部是会生成try catch finally代码块来帮你最终实现关闭数据库连接的
没必要总是conn.Close();用using处理就行。比如:
//连接字符串
static string connectStr = ConfigurationManager.ConnectionStrings["SQL"].ConnectionString;//返回受影响的行数
public static int ExecuteNonQuery(string sql, params SqlParameter[] paras)
{
using (SqlConnection conn = new SqlConnection(connectStr))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddRange(paras);
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
return cmd.ExecuteNonQuery();
}
}
}
调用方法如下:
“引用”中添加:System.Configuration
类文件中添加: using System.Configuration;
代码中使用: ConfigurationManager.ConnectionStrings[“连接字符串名称"].ConnectionString;其他参考楼上,有空了LZ可以看看微软提供的SQLHelper
{
if(this.conn != null)
{
conn.Close();
}
}在业务逻辑层调用这个方法。
Mydata sqlhelp = new Mydata();
当调用了sqlhelp.Getdataset等方法以后,最后要调用Close()方法。
里边有些函数,变量可以改成静态的,前边加static, 不用每次调用都去实例化你这个SqlHelper类。
如果需要批量就用bulk