有木有向数据库添加数据的通用类。
解决方案 »
- .NET中关于水晶报表的问题
- 装了vs2005,但没有05的msdn,但有03的msdn,也装上了,不知道在vs05里如何调用?
- 找到一段指定的字符串是否存在,如何用最少的cpu占用率来实现?
- 小问题:ASP.NET中如何往DataSet中加入数据
- 如何为c#编写的程序换皮肤?(200分)
- 怎样才能直接调用SQL的备份及还原数据库组件?????
- winform 怎样实现listBox的选项左边是颜色,右边是文本
- 我有一个奇怪的问题,可能要难到您哟
- 程序怎样才能变为.exe文件呢?
- 我想在新窗口使用其它窗口的变量,该怎么办 当天结贴
- .net winform 让commbox自动下拉,设置DroppedDown = true;光标会丢失
- dataset读取xml文件,再写入数据库,这代码哪里问题呢?
EF
自己编写
public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)//
{
string connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open(); //打开数据库
using (SqlCommand cmd = conn.CreateCommand
{
cmd.CommandText = sql;
foreach (SqlParameter param in parameters)
{
cmd.Parameters.Add(param);
}
return cmd.ExecuteNonQuery();
}
}
}
SQLHelper.ExecuteNonQuery("update Login set ErrorTimes = ErrorTimes + 1 where Users = @user", new SqlParameter("user", txtUser.Text));
可以直接调用的。。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;namespace RMS_DBUtility
{
public class DBHelper : IDBHelper
{
//单例对象
private static DBHelper helper = null;
//SQL数据连接
//private SqlConnection conn;
//SQL命令对象
// private SqlCommand cmd;
//SQL数据适配器
//private SqlDataAdapter sda; #region GetInstance
/// <summary>
/// 获取helper对象
/// </summary>
/// <returns>DBHelper</returns>
public static DBHelper GetInstance()
{
if (helper == null)
{
helper = new DBHelper();
}
return helper;
}
#endregion
#region 私有方法
/// <summary>
/// 得到SQL数据连接对象
/// </summary>
/// <returns>SqlConnection</returns>
private SqlConnection GetConnection()
{ SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connString"].ConnectionString); //conn = new SqlConnection("server=16.173.247.175;uid=sa;pwd=sa;database=EVOC");
conn.Open();
return conn;
} /// <summary>
/// 自定义得到SQL数据连接对象
/// </summary>
/// <param name="connStr">自定义得到SQL数据连接</param>
/// <returns>SqlConnection</returns>
private SqlConnection GetConnection(string connStr)
{ SqlConnection conn = new SqlConnection(connStr); //conn = new SqlConnection("server=16.173.247.175;uid=sa;pwd=sa;database=EVOC");
conn.Open();
return conn;
} /// <summary>
/// 关闭SQL数据连接
/// </summary>
/// <param name="conn">SqlConnection</param>
private void CloseConnection(SqlConnection conn)
{
if (conn != null && conn.State == ConnectionState.Open)
{
conn.Close();
}
} /// <summary>
/// 为命令对象设置参数
/// </summary>
/// <param name="parameters">参数列表</param>
private void SetParameter(SqlParameter[] parameters, SqlCommand cmd)
{
cmd.CommandTimeout = 999;
//如果参数不为空并且至少有一个参数则为命令对象添加参数
if (parameters != null && parameters.Length > 0)
{
foreach (SqlParameter param in parameters)
{
cmd.Parameters.Add(param);
}
}
}
#endregion public int ExcuteSQLNonQuery(string sql, SqlParameter[] parameters)
{
//影响行数
int count = 0;
//获取数据连接
SqlConnection conn = GetConnection();
//创建命令对象
SqlCommand cmd = new SqlCommand(sql, conn);
//设置命令事务
SqlTransaction transaction = conn.BeginTransaction();
cmd.Transaction = transaction;
SetParameter(parameters, cmd);
try
{
count = cmd.ExecuteNonQuery();
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
finally
{
CloseConnection(conn);
}
return count;
} public int ExcuteProcNonQuery(string procName, SqlParameter[] parameters)
{
int count = 0;
SqlConnection conn = GetConnection();
SqlCommand cmd = new SqlCommand(procName, conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlTransaction transaction = conn.BeginTransaction();
cmd.Transaction = transaction;
SetParameter(parameters, cmd);
try
{
count = cmd.ExecuteNonQuery();
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
finally
{
CloseConnection(conn);
}
return count;
} public SqlDataReader ExcuteSQLReader(string sql, SqlParameter[] parameters)
{
SqlDataReader sdr = null;
SqlConnection conn = GetConnection();
try
{
SqlCommand cmd = new SqlCommand(sql, conn);
SetParameter(parameters, cmd);
sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
CloseConnection(conn);
throw ex;
}
return sdr; } public SqlDataReader ExcuteProcReader(string procName, SqlParameter[] parameters)
{
SqlDataReader sdr = null;
SqlConnection conn = GetConnection();
try
{
SqlCommand cmd = new SqlCommand(procName, conn);
cmd.CommandType = CommandType.StoredProcedure; SetParameter(parameters, cmd);
sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
CloseConnection(conn);
throw ex;
}
return sdr;
} /// <summary>
/// over load function
/// </summary>
/// <param name="procName"></param>
/// <param name="parameters"></param>
/// <param name="connStr">connection string</param>
/// <returns></returns>
public SqlDataReader ExcuteProcReader(string procName, SqlParameter[] parameters, string connStr)
{
SqlDataReader sdr = null;
SqlConnection conn = GetConnection(connStr);
try
{
SqlCommand cmd = new SqlCommand(procName, conn);
cmd.CommandType = CommandType.StoredProcedure; SetParameter(parameters, cmd);
sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
CloseConnection(conn);
throw ex;
}
return sdr;
}
public DataTable ExcuteProcReader(string procName, SqlParameter[] parameters, out int count)
{
DataTable dt = new DataTable();
SqlConnection conn = GetConnection();
try
{
SqlCommand cmd = new SqlCommand(procName, conn);
cmd.CommandType = CommandType.StoredProcedure;
SetParameter(parameters, cmd);
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
sda.Fill(dt);
count = Convert.ToInt32(sda.SelectCommand.Parameters[parameters.Length - 1].Value);
}
}
catch (Exception ex)
{
count = 0;
throw ex;
}
finally
{
CloseConnection(conn);
}
return dt;
}
public DataTable ExcuteProcReader(string procName, SqlParameter[] parameters, out int count, string connStr)
{
DataTable dt = new DataTable();
SqlConnection conn = GetConnection(connStr);
try
{
SqlCommand cmd = new SqlCommand(procName, conn);
cmd.CommandType = CommandType.StoredProcedure;
SetParameter(parameters, cmd);
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
sda.Fill(dt);
count = Convert.ToInt32(sda.SelectCommand.Parameters[parameters.Length - 1].Value);
}
}
catch (Exception ex)
{
count = 0;
throw ex;
}
finally
{
CloseConnection(conn);
}
return dt;
}
{
DataTable dt = new DataTable();
SqlConnection conn = GetConnection();
try
{
SqlCommand cmd = new SqlCommand(procName, conn);
cmd.CommandType = CommandType.StoredProcedure;
SetParameter(parameters, cmd);
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
sda.Fill(dt);
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
CloseConnection(conn);
}
return dt;
} public bool ExcuteProcs(Dictionary<string, SqlParameter[]> procs)
{
bool flag = false;
SqlConnection conn = GetConnection();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = conn;
SqlTransaction transaction = conn.BeginTransaction();
cmd.Transaction = transaction;
try
{
foreach (string procName in procs.Keys)
{
cmd.CommandText = procName;
if (procName.LastIndexOf(".") != -1)
{
cmd.CommandText = procName.Substring(0, procName.LastIndexOf("."));
}
cmd.Parameters.Clear();
SetParameter(procs[procName], cmd);
cmd.ExecuteNonQuery();
}
transaction.Commit();
flag = true;
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
finally
{
CloseConnection(conn);
}
return flag;
}
}
}直接调用就可以了:
SqlDataReader dr = helper.ExcuteProcReader("[proc_search_P6_Project_List_PageData]", sp)
[/code]
带执行示例