SqlHelper:带sqlParameter,对sql server增、册、查、改的公用方法
2014-03-20 22:58
281 查看
SqlHelper:带sqlParameter,对sql server增、册、查、改的公用方法
2011-10-13 14:58:54 我来说两句
收藏
我要投稿
using System.Data;
using System.Data.SqlCient;
#region ###jonse
//共通函数 把sql语句执行的查询结果放入datatable中
// 传入sql语句,datatable名称,数据连接字符可选
public static DataTable GetDataTable(out string sEx, string sSql, string sDataTableName, string sConnStr = "", SqlParameter[] commandParameters = null)
{
sEx = string.Empty;
if (string.IsNullOrEmpty(sDataTableName))
{
sEx = "datatable的名字不能为空";
return null;
}
if (string.IsNullOrEmpty(sConnStr)) sConnStr = DbHelperSQL.connectionString;
DataTable dt = new DataTable();
try
{
if (commandParameters == null)
{
dt = ExecuteDataTable(sConnStr, CommandType.Text, sSql);
}
else
{
dt = ExecuteDataTable(sConnStr, CommandType.StoredProcedure, sSql, commandParameters);
}
}
catch (Exception ex)
{
sEx = ex.Message.ToString();
}
finally
{
dt.TableName = sDataTableName;
}
return dt;
}
// 取dataset
public static DataSet GetDataSet(out string sError, string sSQL, string sConnStr="")
{
DataSet ds = null;
sError = string.Empty;
try
{
if (string.IsNullOrEmpty(sConnStr)) sConnStr = DbHelperSQL.connectionString;
SqlConnection conn = new SqlConnection(sConnStr);
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = sSQL;
SqlDataAdapter dapter = new SqlDataAdapter(comm);
ds = new DataSet();
dapter.Fill(ds);
}
catch (Exception ex)
{
sError = ex.Message;
}
return ds;
}
// 取某个单一的元素
public static object GetSingle(out string sError, string sSQL)
{
DataTable dt = GetDataTable(out sError, sSQL, "singleTbl");
if (dt != null && dt.Rows.Count > 0)
{
return dt.Rows[0][0];
}
return null;
}
// 取最大的ID
public static Int32 GetMaxID(out string sError, string sKeyField, string sTableName)
{
DataTable dt = GetDataTable(out sError, "select isnull(max([" + sKeyField + "]),0) as MaxID from [" + sTableName + "]","maxID");
if (dt != null && dt.Rows.Count > 0)
{
return Convert.ToInt32(dt.Rows[0][0].ToString());
}
return 0;
}
// 执行 insert,update,delete 动作,也可以使用事务
public static bool UpdateData(out string sError, string sSQL, SqlParameter[] sqlParams=null,bool bUseTransaction = false, string sConnStr = "")
{
int iResult = 0;
sError = string.Empty;
if (string.IsNullOrEmpty(sConnStr)) sConnStr = DbHelperSQL.connectionString;
if (!bUseTransaction)
{
try
{
SqlConnection conn = new SqlConnection(sConnStr);
if (conn.State != ConnectionState.Open)
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sSQL;
if (sqlParams != null)
{
foreach (SqlParameter parm in sqlParams)
cmd.Parameters.Add(parm);
}
iResult = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
sError = ex.Message;
iResult = -1;
}
}
else // 使用事务
{
SqlTransaction trans = null;
try
{
SqlConnection conn = new SqlConnection(sConnStr);
if (conn.State != ConnectionState.Open)
conn.Open();
trans = conn.BeginTransaction();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sSQL;
if (sqlParams != null)
{
foreach (SqlParameter parm in sqlParams)
cmd.Parameters.Add(parm);
}
cmd.Transaction = trans;
iResult = cmd.ExecuteNonQuery();
trans.Commit();
}
catch (Exception ex)
{
sError = ex.Message;
iResult = -1;
trans.Rollback();
}
}
return iResult > 0;
}
#endregion ###jonse
提示:
1,需要定义 DbHelperSQL.connectionString 变量
关于数据库连接字符串,一般有2种格式:
(1),Windows验证
Common.ConnString = @"Initial Catalog=数据库名;Data Source=电脑名或IP地址;Integrated Security=SSPI";
(2), Sql混合验证
Common.ConnString = @"server=电脑名或IP地址;database=数据库名;uid=用户名;password=密码";
2, 具体调用例子,与下面的相似:http://www.2cto.com/database/201110/107655.html
摘自:keenweiwei的专栏
2011-10-13 14:58:54 我来说两句
收藏
我要投稿
using System.Data;
using System.Data.SqlCient;
#region ###jonse
//共通函数 把sql语句执行的查询结果放入datatable中
// 传入sql语句,datatable名称,数据连接字符可选
public static DataTable GetDataTable(out string sEx, string sSql, string sDataTableName, string sConnStr = "", SqlParameter[] commandParameters = null)
{
sEx = string.Empty;
if (string.IsNullOrEmpty(sDataTableName))
{
sEx = "datatable的名字不能为空";
return null;
}
if (string.IsNullOrEmpty(sConnStr)) sConnStr = DbHelperSQL.connectionString;
DataTable dt = new DataTable();
try
{
if (commandParameters == null)
{
dt = ExecuteDataTable(sConnStr, CommandType.Text, sSql);
}
else
{
dt = ExecuteDataTable(sConnStr, CommandType.StoredProcedure, sSql, commandParameters);
}
}
catch (Exception ex)
{
sEx = ex.Message.ToString();
}
finally
{
dt.TableName = sDataTableName;
}
return dt;
}
// 取dataset
public static DataSet GetDataSet(out string sError, string sSQL, string sConnStr="")
{
DataSet ds = null;
sError = string.Empty;
try
{
if (string.IsNullOrEmpty(sConnStr)) sConnStr = DbHelperSQL.connectionString;
SqlConnection conn = new SqlConnection(sConnStr);
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = sSQL;
SqlDataAdapter dapter = new SqlDataAdapter(comm);
ds = new DataSet();
dapter.Fill(ds);
}
catch (Exception ex)
{
sError = ex.Message;
}
return ds;
}
// 取某个单一的元素
public static object GetSingle(out string sError, string sSQL)
{
DataTable dt = GetDataTable(out sError, sSQL, "singleTbl");
if (dt != null && dt.Rows.Count > 0)
{
return dt.Rows[0][0];
}
return null;
}
// 取最大的ID
public static Int32 GetMaxID(out string sError, string sKeyField, string sTableName)
{
DataTable dt = GetDataTable(out sError, "select isnull(max([" + sKeyField + "]),0) as MaxID from [" + sTableName + "]","maxID");
if (dt != null && dt.Rows.Count > 0)
{
return Convert.ToInt32(dt.Rows[0][0].ToString());
}
return 0;
}
// 执行 insert,update,delete 动作,也可以使用事务
public static bool UpdateData(out string sError, string sSQL, SqlParameter[] sqlParams=null,bool bUseTransaction = false, string sConnStr = "")
{
int iResult = 0;
sError = string.Empty;
if (string.IsNullOrEmpty(sConnStr)) sConnStr = DbHelperSQL.connectionString;
if (!bUseTransaction)
{
try
{
SqlConnection conn = new SqlConnection(sConnStr);
if (conn.State != ConnectionState.Open)
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sSQL;
if (sqlParams != null)
{
foreach (SqlParameter parm in sqlParams)
cmd.Parameters.Add(parm);
}
iResult = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
sError = ex.Message;
iResult = -1;
}
}
else // 使用事务
{
SqlTransaction trans = null;
try
{
SqlConnection conn = new SqlConnection(sConnStr);
if (conn.State != ConnectionState.Open)
conn.Open();
trans = conn.BeginTransaction();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sSQL;
if (sqlParams != null)
{
foreach (SqlParameter parm in sqlParams)
cmd.Parameters.Add(parm);
}
cmd.Transaction = trans;
iResult = cmd.ExecuteNonQuery();
trans.Commit();
}
catch (Exception ex)
{
sError = ex.Message;
iResult = -1;
trans.Rollback();
}
}
return iResult > 0;
}
#endregion ###jonse
提示:
1,需要定义 DbHelperSQL.connectionString 变量
关于数据库连接字符串,一般有2种格式:
(1),Windows验证
Common.ConnString = @"Initial Catalog=数据库名;Data Source=电脑名或IP地址;Integrated Security=SSPI";
(2), Sql混合验证
Common.ConnString = @"server=电脑名或IP地址;database=数据库名;uid=用户名;password=密码";
2, 具体调用例子,与下面的相似:http://www.2cto.com/database/201110/107655.html
摘自:keenweiwei的专栏
相关文章推荐
- SqlHelper:带sqlParameter,对sql server增、册、查、改的公用方法
- SqlHelper:带sqlParameter,对sql server增、册、查、改的公用方法
- 机房重构中的sqlHelper;Datatable;SQLParameter;SQLCommand都是什么
- SQL公用方法-根据字符串拆分成数组
- SQLBindParameter 函数的参数解析及使用方法
- Mybatis工具SqlHelper - 获取Mybatis方法的Sql
- C#使用预处理SQL语句访问MySQL的方法(Parameter)
- SQL公用方法-根据日期格式字符串返回年季度开始和结束日期
- [导入]实例化SqlParameterCollection的方法是
- SQL公用方法---获取表名级字段名
- 更新MySQL数据库( java.sql.SQLException: No value specified for parameter 1) 异常 解决方法
- EF Core使用SQL调用返回其他类型的查询 ASP.NET Core 2.0 使用NLog实现日志记录 CSS 3D transforms cSharp:use Activator.CreateInstance with an Interface? SqlHelper DBHelper C# Thread.Abort方法真的让线程停止了吗? 注意!你的Thread.Abort方法真
- SQL Server Parameter Sniffing及其改进方法
- SqlParameter数组传参的方法
- Mybatis工具SqlHelper - 获取Mybatis方法的Sql
- SqlParameter设定的value值为0时、调用的存储过程获取到的值却为null解决方法
- c#中SqlHelper封装SqlDataReader的方法
- SQL Server Parameter Sniffing及其改进方法
- C#使用预处理SQL语句访问MySQL的方法(Parameter)
- Mabatis报错 java.sql.SQLException: Parameter number 3 is not an OUT parameter 解决方法