using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
// new
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace MyQQ
{
/// <summary>
/// 数据处理基类
/// </summary>
public class DataAccess
{
#region 静态属性
protected static SqlConnection conn = new SqlConnection();
protected static SqlCommand comm = new SqlCommand();
#endregion public DataAccess()
{
//init();
} #region 内部函数 静态方法中不会执行DataAccess()构造函数
/// <summary>
/// 打开数据库连接
/// </summary>
private static void OpenConnection()
{
if (conn.State == ConnectionState.Closed)
{
ConfigurationManager.RefreshSection("connectionStrings");
conn.ConnectionString = ConfigurationManager.ConnectionStrings["MyQQConnString"].ConnectionString;
comm.Connection = conn;
try
{
conn.Open();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
}
/// <summary>
/// 关闭当前数据库连接
/// </summary>
private static void CloseConnection()
{
if (conn.State == ConnectionState.Open)
conn.Close();
conn.Dispose();
comm.Dispose();
}
#endregion /// <summary>
/// 执行Sql非查询语句
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdType">命令执行类型</param>
/// <param name="cmdParams">参数集合</param>
public static void ExecuteNonQuery(string sqlstr, CommandType cmdType, params SqlParameter[] cmdParams)
{
try
{
OpenConnection(); // 添加参数
comm.Parameters.Clear();
for (int i = 0; i < cmdParams.Length; i++)
{
comm.Parameters.Add(cmdParams[i]);
} comm.CommandType = cmdType;
comm.CommandText = sqlstr;
comm.ExecuteNonQuery();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
comm.Parameters.Clear();
CloseConnection();
}
} /// <summary>
/// 执行Sql非查询语句
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdParams">参数集合</param>
public static void ExecuteNonQuery(string sqlstr, params SqlParameter[] cmdParams)
{
ExecuteNonQuery(sqlstr, CommandType.Text, cmdParams);
} /// <summary>
/// 执行返回第一行第一列的Sql语句
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdType">命令执行类型</param>
/// <param name="cmdParams">参数集合</param>
public static object ExecuteScalar(string sqlstr, CommandType cmdType, params SqlParameter[] cmdParams)
{
object obj = null;
try
{
OpenConnection(); // 添加参数
comm.Parameters.Clear();
for (int i = 0; i < cmdParams.Length; i++)
{
comm.Parameters.Add(cmdParams[i]);
} comm.CommandType = cmdType;
comm.CommandText = sqlstr;
obj = comm.ExecuteScalar();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
comm.Parameters.Clear();
CloseConnection();
} return obj;
} /// <summary>
/// 执行返回第一行第一列的Sql语句
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdParams">参数集合</param>
public static object ExecuteScalar(string sqlstr, params SqlParameter[] cmdParams)
{
return ExecuteScalar(sqlstr, CommandType.Text, cmdParams);
} /// <summary>
/// 执行Sql查询语句,并返回数据表
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdType">命令执行类型</param>
/// <param name="cmdParams">参数集合</param>
/// <returns>返回数据表对象</returns>
public static DataTable GetDataTable(string sqlstr, CommandType cmdType, params SqlParameter[] cmdParams)
{
try
{
SqlDataAdapter da = new SqlDataAdapter();
OpenConnection(); // 添加参数
comm.Parameters.Clear();
for (int i = 0; i < cmdParams.Length; i++)
{
comm.Parameters.Add(cmdParams[i]);
} comm.CommandType = cmdType;
comm.CommandText = sqlstr; DataTable dt = new DataTable();
da.SelectCommand = comm;
da.Fill(dt); return dt;
}
catch (Exception e)
{
System.Windows.Forms.MessageBox.Show(e.Message);
return null;
}
finally
{
comm.Parameters.Clear();
CloseConnection();
}
} /// <summary>
/// 执行Sql查询语句,并返回数据表
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdParams">参数集合</param>
public static DataTable GetDataTable(string sqlstr, params SqlParameter[] cmdParams)
{
return GetDataTable(sqlstr, CommandType.Text, cmdParams);
} /// <summary>
/// 执行Sql查询语句,并返回数据视图
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdType">命令执行类型</param>
/// <param name="cmdParams">参数集合</param>
/// <returns>返回数据视图对象</returns>
public static DataView GetDataView(string sqlstr, CommandType cmdType, params SqlParameter[] cmdParams)
{
return GetDataTable(sqlstr, cmdType, cmdParams).DefaultView;
} /// <summary>
/// 执行Sql查询语句,并返回数据视图
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdParams">参数集合</param>
/// <returns>返回数据视图对象</returns>
public static DataView GetDataView(string sqlstr, params SqlParameter[] cmdParams)
{
return GetDataView(sqlstr, CommandType.Text, cmdParams);
} /// <summary>
/// 执行Sql语句,同时进行事务处理
/// </summary>
/// <param name="sqlstr">Sql语句列表</param>
/// <param name="cmdParams">对应参数列表</param>
/// <param name="cmdTypes">对应命令类型</param>
public static void ExecuteSqlWithTransaction(List<string> sqlstrs, List<CommandType> cmdTypes, List<SqlParameter[]> cmdParams)
{
SqlTransaction trans = null;
try
{
OpenConnection();
trans = conn.BeginTransaction();
comm.Transaction = trans; int count = sqlstrs.Count; // 命令数量 if (count != cmdTypes.Count || count != cmdParams.Count)
{
throw new Exception("参数有误");
}
else
{
for (int i = 0; i < count; i++)
{
comm.CommandType = cmdTypes[i];
comm.CommandText = sqlstrs[i]; // 添加参数
comm.Parameters.Clear();
for (int j = 0; j < cmdParams[i].Length; j++)
{
comm.Parameters.Add(cmdParams[i][j]);
} comm.ExecuteNonQuery();
}
trans.Commit();
}
}
catch(Exception ex)
{
trans.Rollback();
throw new Exception(ex.Message);
}
finally
{
CloseConnection();
}
} /// <summary>
/// 执行Sql语句,同时进行事务处理
/// </summary>
/// <param name="sqlstr">Sql语句列表</param>
/// <param name="cmdParams">对应参数列表</param>
/// <param name="cmdTypes">对应命令类型</param>
public static void ExecuteSqlWithTransaction(List<string> sqlstrs, List<SqlParameter[]> cmdParams)
{
List<CommandType> cmdTypes = new List<CommandType>();
for (int i = 0; i < sqlstrs.Count; i++)
{
cmdTypes.Add(CommandType.Text);
} ExecuteSqlWithTransaction(sqlstrs, cmdTypes, cmdParams);
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
// new
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace MyQQ
{
/// <summary>
/// 数据处理基类
/// </summary>
public class DataAccess
{
#region 静态属性
protected static SqlConnection conn = new SqlConnection();
protected static SqlCommand comm = new SqlCommand();
#endregion public DataAccess()
{
//init();
} #region 内部函数 静态方法中不会执行DataAccess()构造函数
/// <summary>
/// 打开数据库连接
/// </summary>
private static void OpenConnection()
{
if (conn.State == ConnectionState.Closed)
{
ConfigurationManager.RefreshSection("connectionStrings");
conn.ConnectionString = ConfigurationManager.ConnectionStrings["MyQQConnString"].ConnectionString;
comm.Connection = conn;
try
{
conn.Open();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
}
/// <summary>
/// 关闭当前数据库连接
/// </summary>
private static void CloseConnection()
{
if (conn.State == ConnectionState.Open)
conn.Close();
conn.Dispose();
comm.Dispose();
}
#endregion /// <summary>
/// 执行Sql非查询语句
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdType">命令执行类型</param>
/// <param name="cmdParams">参数集合</param>
public static void ExecuteNonQuery(string sqlstr, CommandType cmdType, params SqlParameter[] cmdParams)
{
try
{
OpenConnection(); // 添加参数
comm.Parameters.Clear();
for (int i = 0; i < cmdParams.Length; i++)
{
comm.Parameters.Add(cmdParams[i]);
} comm.CommandType = cmdType;
comm.CommandText = sqlstr;
comm.ExecuteNonQuery();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
comm.Parameters.Clear();
CloseConnection();
}
} /// <summary>
/// 执行Sql非查询语句
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdParams">参数集合</param>
public static void ExecuteNonQuery(string sqlstr, params SqlParameter[] cmdParams)
{
ExecuteNonQuery(sqlstr, CommandType.Text, cmdParams);
} /// <summary>
/// 执行返回第一行第一列的Sql语句
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdType">命令执行类型</param>
/// <param name="cmdParams">参数集合</param>
public static object ExecuteScalar(string sqlstr, CommandType cmdType, params SqlParameter[] cmdParams)
{
object obj = null;
try
{
OpenConnection(); // 添加参数
comm.Parameters.Clear();
for (int i = 0; i < cmdParams.Length; i++)
{
comm.Parameters.Add(cmdParams[i]);
} comm.CommandType = cmdType;
comm.CommandText = sqlstr;
obj = comm.ExecuteScalar();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
comm.Parameters.Clear();
CloseConnection();
} return obj;
} /// <summary>
/// 执行返回第一行第一列的Sql语句
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdParams">参数集合</param>
public static object ExecuteScalar(string sqlstr, params SqlParameter[] cmdParams)
{
return ExecuteScalar(sqlstr, CommandType.Text, cmdParams);
} /// <summary>
/// 执行Sql查询语句,并返回数据表
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdType">命令执行类型</param>
/// <param name="cmdParams">参数集合</param>
/// <returns>返回数据表对象</returns>
public static DataTable GetDataTable(string sqlstr, CommandType cmdType, params SqlParameter[] cmdParams)
{
try
{
SqlDataAdapter da = new SqlDataAdapter();
OpenConnection(); // 添加参数
comm.Parameters.Clear();
for (int i = 0; i < cmdParams.Length; i++)
{
comm.Parameters.Add(cmdParams[i]);
} comm.CommandType = cmdType;
comm.CommandText = sqlstr; DataTable dt = new DataTable();
da.SelectCommand = comm;
da.Fill(dt); return dt;
}
catch (Exception e)
{
System.Windows.Forms.MessageBox.Show(e.Message);
return null;
}
finally
{
comm.Parameters.Clear();
CloseConnection();
}
} /// <summary>
/// 执行Sql查询语句,并返回数据表
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdParams">参数集合</param>
public static DataTable GetDataTable(string sqlstr, params SqlParameter[] cmdParams)
{
return GetDataTable(sqlstr, CommandType.Text, cmdParams);
} /// <summary>
/// 执行Sql查询语句,并返回数据视图
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdType">命令执行类型</param>
/// <param name="cmdParams">参数集合</param>
/// <returns>返回数据视图对象</returns>
public static DataView GetDataView(string sqlstr, CommandType cmdType, params SqlParameter[] cmdParams)
{
return GetDataTable(sqlstr, cmdType, cmdParams).DefaultView;
} /// <summary>
/// 执行Sql查询语句,并返回数据视图
/// </summary>
/// <param name="sqlstr">传入的Sql语句</param>
/// <param name="cmdParams">参数集合</param>
/// <returns>返回数据视图对象</returns>
public static DataView GetDataView(string sqlstr, params SqlParameter[] cmdParams)
{
return GetDataView(sqlstr, CommandType.Text, cmdParams);
} /// <summary>
/// 执行Sql语句,同时进行事务处理
/// </summary>
/// <param name="sqlstr">Sql语句列表</param>
/// <param name="cmdParams">对应参数列表</param>
/// <param name="cmdTypes">对应命令类型</param>
public static void ExecuteSqlWithTransaction(List<string> sqlstrs, List<CommandType> cmdTypes, List<SqlParameter[]> cmdParams)
{
SqlTransaction trans = null;
try
{
OpenConnection();
trans = conn.BeginTransaction();
comm.Transaction = trans; int count = sqlstrs.Count; // 命令数量 if (count != cmdTypes.Count || count != cmdParams.Count)
{
throw new Exception("参数有误");
}
else
{
for (int i = 0; i < count; i++)
{
comm.CommandType = cmdTypes[i];
comm.CommandText = sqlstrs[i]; // 添加参数
comm.Parameters.Clear();
for (int j = 0; j < cmdParams[i].Length; j++)
{
comm.Parameters.Add(cmdParams[i][j]);
} comm.ExecuteNonQuery();
}
trans.Commit();
}
}
catch(Exception ex)
{
trans.Rollback();
throw new Exception(ex.Message);
}
finally
{
CloseConnection();
}
} /// <summary>
/// 执行Sql语句,同时进行事务处理
/// </summary>
/// <param name="sqlstr">Sql语句列表</param>
/// <param name="cmdParams">对应参数列表</param>
/// <param name="cmdTypes">对应命令类型</param>
public static void ExecuteSqlWithTransaction(List<string> sqlstrs, List<SqlParameter[]> cmdParams)
{
List<CommandType> cmdTypes = new List<CommandType>();
for (int i = 0; i < sqlstrs.Count; i++)
{
cmdTypes.Add(CommandType.Text);
} ExecuteSqlWithTransaction(sqlstrs, cmdTypes, cmdParams);
}
}
}
解决方案 »
- [新手求助]通过oledb连接excel的一个查询。。。。
- 在线等,关于C# TCP/IP Socket 的 输据传输问题!!!!!!!!
- 求救!那位大哥能提供一份读写XML的公共类啊,小弟急用!在线等!
- 88
- 请问winform的程序中datagridview 的表头能设置背景图片吗?
- 如何利用正则表达式确定 “1.46285150E-07”或“1.46026710E+07”等科学记数法表达式是数值?
- 怎样实现IP和MAC地址的伪装(局域网)????
- 关于欢迎画面
- VS2002安装后Framework的版本是1.0,从网上下载一个Framework1.1升级以后,发现VS2002的版本还是1.0,我将Framework1.0卸载,然后安装1.1.
- 有没有绘制流程图的控件?
- winform程序打包
- 求C#保存EXECEL表格的代码
conn.ConnectionString = ConfigurationManager.ConnectionStrings["MyQQConnString"].ConnectionString;ConfigurationManager是不是你写的类啊 缺少引用吧
+
这是.net本身的dll