给实体类 写个---通用数据库操作类 本帖最后由 xiangjianlin 于 2010-12-06 12:41:59 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Configuration;using System.Data;using System.Data.OleDb;namespace XXX{ /// <summary> /// OLEDB查询辅助类 /// </summary> public abstract class OleDbHelper { //数据库连接字符串 public static readonly string ConnectionString = ConfigurationManager.AppSettings["OLEDBConnStr"]; #region 公共方法 /// <summary> /// 执行 SQL 语句(如 INSERT、DELETE、UPDATE 和 SET 语句等命令)。 /// </summary> /// <param name="connectionString">连接字符串</param> /// <param name="cmdType">指定如何解释命令</param> /// <param name="cmdText">要对数据源执行的 SQL 语句或存储过程</param> /// <param name="commandParameters">命令的参数</param> /// <returns>受影响的行数</returns> public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters) { OleDbCommand cmd = new OleDbCommand(); using (OleDbConnection conn = new OleDbConnection(connectionString)) { PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; } } /// <summary> /// 执行 SQL 语句(如 INSERT、DELETE、UPDATE 和 SET 语句等命令)。 /// </summary> /// <param name="connection">到数据源的连接</param> /// <param name="cmdType">指定如何解释命令</param> /// <param name="cmdText">要对数据源执行的 SQL 语句或存储过程</param> /// <param name="commandParameters">命令的参数</param> /// <returns>受影响的行数</returns> public static int ExecuteNonQuery(OleDbConnection connection, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters) { OleDbCommand cmd = new OleDbCommand(); PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; } /// <summary> /// 执行指定的事务。 /// </summary> /// <param name="trans">要在数据源执行的 SQL 事务</param> /// <param name="cmdType">指定如何解释命令</param> /// <param name="cmdText">要对数据源执行的 SQL 语句或存储过程</param> /// <param name="commandParameters">命令的参数</param> /// <returns>受影响的行数</returns> public static int ExecuteNonQuery(OleDbTransaction trans, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters) { OleDbCommand cmd = new OleDbCommand(); PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; } /// <summary> /// 获取数据记录读取对象 /// </summary> /// <param name="connectionString">连接字符串</param> /// <param name="cmdType">指定如何解释命令</param> /// <param name="cmdText">要对数据源执行的 SQL 语句或存储过程</param> /// <param name="commandParameters">命令的参数</param> /// <returns>数据记录读取对象</returns> public static OleDbDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters) { OleDbCommand cmd = new OleDbCommand(); OleDbConnection conn = new OleDbConnection(connectionString); // we use a try/catch here because if the method throws an exception we want to // close the connection throw code, because no datareader will exist, hence the // commandBehaviour.CloseConnection will not work try { PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); OleDbDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); cmd.Parameters.Clear(); return rdr; } catch { conn.Close(); throw; } } /// <summary> /// 从数据源中检索单个值 /// </summary> /// <param name="connectionString">连接字符串</param> /// <param name="cmdType">指定如何解释命令</param> /// <param name="cmdText">要对数据源执行的 SQL 语句或存储过程</param> /// <param name="commandParameters">命令的参数</param> /// <returns>检索的值</returns> public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters) { OleDbCommand cmd = new OleDbCommand(); using (OleDbConnection connection = new OleDbConnection(connectionString)) { PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters); object val = cmd.ExecuteScalar(); cmd.Parameters.Clear(); return val; } } /// <summary> /// 从数据源中检索单个值 /// </summary> /// <param name="connection">到数据源的连接</param> /// <param name="cmdType">指定如何解释命令</param> /// <param name="cmdText">要对数据源执行的 SQL 语句或存储过程</param> /// <param name="commandParameters">命令的参数</param> /// <returns>检索的值</returns> public static object ExecuteScalar(OleDbConnection connection, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters) { OleDbCommand cmd = new OleDbCommand(); PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters); object val = cmd.ExecuteScalar(); cmd.Parameters.Clear(); return val; } #endregion #region 私有方法 /// <summary> /// 准备一个执行的命令 /// </summary> /// <param name="cmd">OleDb命令对象</param> /// <param name="conn">OleDb连接对象</param> /// <param name="trans">Sql事务对象</param> /// <param name="cmdType">命令类型,如:存储过程或文本</param> /// <param name="cmdText">命令文本,如:SQL语句</param> /// <param name="cmdParms">命令中使用的OleDb参数</param> private static void PrepareCommand(OleDbCommand cmd, OleDbConnection conn, OleDbTransaction trans, CommandType cmdType, string cmdText, OleDbParameter[] cmdParms) { if (conn.State != ConnectionState.Open) conn.Open(); cmd.Connection = conn; cmd.CommandText = cmdText; if (trans != null) cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null) { foreach (OleDbParameter parm in cmdParms) cmd.Parameters.Add(parm); } } #endregion }} 很多看看微软企业库LINQ winform listview 双击某行 不改变checkbox,怎么写,谢谢 请教大牛这个面向对象设计是否合理 怎样判定页面值是否有修改 状态不对的问题 winfrom 导出EXCEL的问题 紧急求助,c#操作Excel的问题 DirectoryEntry.Invoke UP有分++++++ C#中需要添加很多张不同尺寸的图片该如何处理? 高手请指导:怎么求出给定日期所在的周数啊! 全站搜索 C#如何实现类似C#编译环境的效果 :从工具栏拉一个控件下来,然后可以拖动,可以改变大小!在线等,谢谢!!!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.OleDb;namespace XXX
{
/// <summary>
/// OLEDB查询辅助类
/// </summary>
public abstract class OleDbHelper
{
//数据库连接字符串
public static readonly string ConnectionString = ConfigurationManager.AppSettings["OLEDBConnStr"]; #region 公共方法 /// <summary>
/// 执行 SQL 语句(如 INSERT、DELETE、UPDATE 和 SET 语句等命令)。
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <param name="cmdType">指定如何解释命令</param>
/// <param name="cmdText">要对数据源执行的 SQL 语句或存储过程</param>
/// <param name="commandParameters">命令的参数</param>
/// <returns>受影响的行数</returns>
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{ OleDbCommand cmd = new OleDbCommand(); using (OleDbConnection conn = new OleDbConnection(connectionString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
} /// <summary>
/// 执行 SQL 语句(如 INSERT、DELETE、UPDATE 和 SET 语句等命令)。
/// </summary>
/// <param name="connection">到数据源的连接</param>
/// <param name="cmdType">指定如何解释命令</param>
/// <param name="cmdText">要对数据源执行的 SQL 语句或存储过程</param>
/// <param name="commandParameters">命令的参数</param>
/// <returns>受影响的行数</returns>
public static int ExecuteNonQuery(OleDbConnection connection, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{ OleDbCommand cmd = new OleDbCommand(); PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
} /// <summary>
/// 执行指定的事务。
/// </summary>
/// <param name="trans">要在数据源执行的 SQL 事务</param>
/// <param name="cmdType">指定如何解释命令</param>
/// <param name="cmdText">要对数据源执行的 SQL 语句或存储过程</param>
/// <param name="commandParameters">命令的参数</param>
/// <returns>受影响的行数</returns>
public static int ExecuteNonQuery(OleDbTransaction trans, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
/// <summary>
/// 获取数据记录读取对象
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <param name="cmdType">指定如何解释命令</param>
/// <param name="cmdText">要对数据源执行的 SQL 语句或存储过程</param>
/// <param name="commandParameters">命令的参数</param>
/// <returns>数据记录读取对象</returns>
public static OleDbDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
OleDbConnection conn = new OleDbConnection(connectionString); // we use a try/catch here because if the method throws an exception we want to
// close the connection throw code, because no datareader will exist, hence the
// commandBehaviour.CloseConnection will not work
try
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
OleDbDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return rdr;
}
catch
{
conn.Close();
throw;
}
} /// <summary>
/// 从数据源中检索单个值
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <param name="cmdType">指定如何解释命令</param>
/// <param name="cmdText">要对数据源执行的 SQL 语句或存储过程</param>
/// <param name="commandParameters">命令的参数</param>
/// <returns>检索的值</returns>
public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand(); using (OleDbConnection connection = new OleDbConnection(connectionString))
{
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
}
} /// <summary>
/// 从数据源中检索单个值
/// </summary>
/// <param name="connection">到数据源的连接</param>
/// <param name="cmdType">指定如何解释命令</param>
/// <param name="cmdText">要对数据源执行的 SQL 语句或存储过程</param>
/// <param name="commandParameters">命令的参数</param>
/// <returns>检索的值</returns>
public static object ExecuteScalar(OleDbConnection connection, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{ OleDbCommand cmd = new OleDbCommand(); PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
} #endregion #region 私有方法 /// <summary>
/// 准备一个执行的命令
/// </summary>
/// <param name="cmd">OleDb命令对象</param>
/// <param name="conn">OleDb连接对象</param>
/// <param name="trans">Sql事务对象</param>
/// <param name="cmdType">命令类型,如:存储过程或文本</param>
/// <param name="cmdText">命令文本,如:SQL语句</param>
/// <param name="cmdParms">命令中使用的OleDb参数</param>
private static void PrepareCommand(OleDbCommand cmd, OleDbConnection conn, OleDbTransaction trans, CommandType cmdType, string cmdText, OleDbParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open(); cmd.Connection = conn;
cmd.CommandText = cmdText; if (trans != null)
cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null)
{
foreach (OleDbParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
} #endregion }
}
看看微软企业库
LINQ