zoukankan
html css js c++ java
SQL SERVER C#数据库操作类 转载
SQL SERVER C#数据库操作类
using
System;
using
System.Collections;
using
System.Collections.Specialized;
using
System.Data;
using
System.Data.SqlClient;
using
System.Configuration;
namespace
LiTianPing.SQLServerDAL
//
可以修改成实际项目的命名空间名称
{
/**/
///
<summary>
///
Copyright (C) 2004-2008 LiTianPing
///
数据访问基础类(基于SQLServer)
///
用户可以修改满足自己项目的需要。
///
</summary>
public
abstract
class
DbHelperSQL
{
//
数据库连接字符串(web.config来配置)
//
<add key="ConnectionString" value="server=127.0.0.1;database=DATABASE;uid=sa;pwd=" />
protected
static
string
connectionString
=
ConfigurationSettings.AppSettings[
"
ConnectionString
"
];
public
DbHelperSQL()
{
}
公用方法
#region
公用方法
public
static
int
GetMaxID(
string
FieldName,
string
TableName)
{
string
strsql
=
"
select max(
"
+
FieldName
+
"
)+1 from
"
+
TableName;
object
obj
=
GetSingle(strsql);
if
(obj
==
null
)
{
return
1
;
}
else
{
return
int
.Parse(obj.ToString());
}
}
public
static
bool
Exists(
string
strSql,
params
SqlParameter[] cmdParms)
{
object
obj
=
GetSingle(strSql, cmdParms);
int
cmdresult;
if
((Object.Equals(obj,
null
))
||
(Object.Equals(obj, System.DBNull.Value)))
{
cmdresult
=
0
;
}
else
{
cmdresult
=
int
.Parse(obj.ToString());
}
if
(cmdresult
==
0
)
{
return
false
;
}
else
{
return
true
;
}
}
#endregion
执行简单SQL语句
#region
执行简单SQL语句
/**/
///
<summary>
///
执行SQL语句,返回影响的记录数
///
</summary>
///
<param name="SQLString">
SQL语句
</param>
///
<returns>
影响的记录数
</returns>
public
static
int
ExecuteSql(
string
SQLString)
{
using
(SqlConnection connection
=
new
SqlConnection(connectionString))
{
using
(SqlCommand cmd
=
new
SqlCommand(SQLString,connection))
{
try
{
connection.Open();
int
rows
=
cmd.ExecuteNonQuery();
return
rows;
}
catch
(System.Data.SqlClient.SqlException E)
{
connection.Close();
throw
new
Exception(E.Message);
}
}
}
}
/**/
///
<summary>
///
执行多条SQL语句,实现数据库事务。
///
</summary>
///
<param name="SQLStringList">
多条SQL语句
</param>
public
static
void
ExecuteSqlTran(ArrayList SQLStringList)
{
using
(SqlConnection conn
=
new
SqlConnection(connectionString))
{
conn.Open();
SqlCommand cmd
=
new
SqlCommand();
cmd.Connection
=
conn;
SqlTransaction tx
=
conn.BeginTransaction();
cmd.Transaction
=
tx;
try
{
for
(
int
n
=
0
;n
<
SQLStringList.Count;n
++
)
{
string
strsql
=
SQLStringList[n].ToString();
if
(strsql.Trim().Length
>
1
)
{
cmd.CommandText
=
strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch
(System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw
new
Exception(E.Message);
}
}
}
/**/
///
<summary>
///
执行带一个存储过程参数的的SQL语句。
///
</summary>
///
<param name="SQLString">
SQL语句
</param>
///
<param name="content">
参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加
</param>
///
<returns>
影响的记录数
</returns>
public
static
int
ExecuteSql(
string
SQLString,
string
content)
{
using
(SqlConnection connection
=
new
SqlConnection(connectionString))
{
SqlCommand cmd
=
new
SqlCommand(SQLString,connection);
System.Data.SqlClient.SqlParameter myParameter
=
new
System.Data.SqlClient.SqlParameter (
"
@content
"
, SqlDbType.NText);
myParameter.Value
=
content ;
cmd.Parameters.Add(myParameter);
try
{
connection.Open();
int
rows
=
cmd.ExecuteNonQuery();
return
rows;
}
catch
(System.Data.SqlClient.SqlException E)
{
throw
new
Exception(E.Message);
}
finally
{
cmd.Dispose();
connection.Close();
}
}
}
/**/
///
<summary>
///
向数据库里插入图像格式的字段(和上面情况类似的另一种实例)
///
</summary>
///
<param name="strSQL">
SQL语句
</param>
///
<param name="fs">
图像字节,数据库的字段类型为image的情况
</param>
///
<returns>
影响的记录数
</returns>
public
static
int
ExecuteSqlInsertImg(
string
strSQL,
byte
[] fs)
{
using
(SqlConnection connection
=
new
SqlConnection(connectionString))
{
SqlCommand cmd
=
new
SqlCommand(strSQL,connection);
System.Data.SqlClient.SqlParameter myParameter
=
new
System.Data.SqlClient.SqlParameter (
"
@fs
"
, SqlDbType.Image);
myParameter.Value
=
fs ;
cmd.Parameters.Add(myParameter);
try
{
connection.Open();
int
rows
=
cmd.ExecuteNonQuery();
return
rows;
}
catch
(System.Data.SqlClient.SqlException E)
{
throw
new
Exception(E.Message);
}
finally
{
cmd.Dispose();
connection.Close();
}
}
}
/**/
///
<summary>
///
执行一条计算查询结果语句,返回查询结果(object)。
///
</summary>
///
<param name="SQLString">
计算查询结果语句
</param>
///
<returns>
查询结果(object)
</returns>
public
static
object
GetSingle(
string
SQLString)
{
using
(SqlConnection connection
=
new
SqlConnection(connectionString))
{
using
(SqlCommand cmd
=
new
SqlCommand(SQLString,connection))
{
try
{
connection.Open();
object
obj
=
cmd.ExecuteScalar();
if
((Object.Equals(obj,
null
))
||
(Object.Equals(obj,System.DBNull.Value)))
{
return
null
;
}
else
{
return
obj;
}
}
catch
(System.Data.SqlClient.SqlException e)
{
connection.Close();
throw
new
Exception(e.Message);
}
}
}
}
/**/
///
<summary>
///
执行查询语句,返回SqlDataReader
///
</summary>
///
<param name="strSQL">
查询语句
</param>
///
<returns>
SqlDataReader
</returns>
public
static
SqlDataReader ExecuteReader(
string
strSQL)
{
SqlConnection connection
=
new
SqlConnection(connectionString);
SqlCommand cmd
=
new
SqlCommand(strSQL,connection);
try
{
connection.Open();
SqlDataReader myReader
=
cmd.ExecuteReader();
return
myReader;
}
catch
(System.Data.SqlClient.SqlException e)
{
throw
new
Exception(e.Message);
}
}
/**/
///
<summary>
///
执行查询语句,返回DataSet
///
</summary>
///
<param name="SQLString">
查询语句
</param>
///
<returns>
DataSet
</returns>
public
static
DataSet Query(
string
SQLString)
{
using
(SqlConnection connection
=
new
SqlConnection(connectionString))
{
DataSet ds
=
new
DataSet();
try
{
connection.Open();
SqlDataAdapter command
=
new
SqlDataAdapter(SQLString,connection);
command.Fill(ds,
"
ds
"
);
}
catch
(System.Data.SqlClient.SqlException ex)
{
throw
new
Exception(ex.Message);
}
return
ds;
}
}
#endregion
执行带参数的SQL语句
#region
执行带参数的SQL语句
/**/
///
<summary>
///
执行SQL语句,返回影响的记录数
///
</summary>
///
<param name="SQLString">
SQL语句
</param>
///
<returns>
影响的记录数
</returns>
public
static
int
ExecuteSql(
string
SQLString,
params
SqlParameter[] cmdParms)
{
using
(SqlConnection connection
=
new
SqlConnection(connectionString))
{
using
(SqlCommand cmd
=
new
SqlCommand())
{
try
{
PrepareCommand(cmd, connection,
null
,SQLString, cmdParms);
int
rows
=
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return
rows;
}
catch
(System.Data.SqlClient.SqlException E)
{
throw
new
Exception(E.Message);
}
}
}
}
/**/
///
<summary>
///
执行多条SQL语句,实现数据库事务。
///
</summary>
///
<param name="SQLStringList">
SQL语句的哈希表(key为sql语句,value是该语句的SqlParameter[])
</param>
public
static
void
ExecuteSqlTran(Hashtable SQLStringList)
{
using
(SqlConnection conn
=
new
SqlConnection(connectionString))
{
conn.Open();
using
(SqlTransaction trans
=
conn.BeginTransaction())
{
SqlCommand cmd
=
new
SqlCommand();
try
{
//
循环
foreach
(DictionaryEntry myDE
in
SQLStringList)
{
string
cmdText
=
myDE.Key.ToString();
SqlParameter[] cmdParms
=
(SqlParameter[])myDE.Value;
PrepareCommand(cmd,conn,trans,cmdText, cmdParms);
int
val
=
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
trans.Commit();
}
}
catch
{
trans.Rollback();
throw
;
}
}
}
}
/**/
///
<summary>
///
执行一条计算查询结果语句,返回查询结果(object)。
///
</summary>
///
<param name="SQLString">
计算查询结果语句
</param>
///
<returns>
查询结果(object)
</returns>
public
static
object
GetSingle(
string
SQLString,
params
SqlParameter[] cmdParms)
{
using
(SqlConnection connection
=
new
SqlConnection(connectionString))
{
using
(SqlCommand cmd
=
new
SqlCommand())
{
try
{
PrepareCommand(cmd, connection,
null
,SQLString, cmdParms);
object
obj
=
cmd.ExecuteScalar();
cmd.Parameters.Clear();
if
((Object.Equals(obj,
null
))
||
(Object.Equals(obj,System.DBNull.Value)))
{
return
null
;
}
else
{
return
obj;
}
}
catch
(System.Data.SqlClient.SqlException e)
{
throw
new
Exception(e.Message);
}
}
}
}
/**/
///
<summary>
///
执行查询语句,返回SqlDataReader
///
</summary>
///
<param name="strSQL">
查询语句
</param>
///
<returns>
SqlDataReader
</returns>
public
static
SqlDataReader ExecuteReader(
string
SQLString,
params
SqlParameter[] cmdParms)
{
SqlConnection connection
=
new
SqlConnection(connectionString);
SqlCommand cmd
=
new
SqlCommand();
try
{
PrepareCommand(cmd, connection,
null
,SQLString, cmdParms);
SqlDataReader myReader
=
cmd.ExecuteReader();
cmd.Parameters.Clear();
return
myReader;
}
catch
(System.Data.SqlClient.SqlException e)
{
throw
new
Exception(e.Message);
}
}
/**/
///
<summary>
///
执行查询语句,返回DataSet
///
</summary>
///
<param name="SQLString">
查询语句
</param>
///
<returns>
DataSet
</returns>
public
static
DataSet Query(
string
SQLString,
params
SqlParameter[] cmdParms)
{
using
(SqlConnection connection
=
new
SqlConnection(connectionString))
{
SqlCommand cmd
=
new
SqlCommand();
PrepareCommand(cmd, connection,
null
,SQLString, cmdParms);
using
( SqlDataAdapter da
=
new
SqlDataAdapter(cmd) )
{
DataSet ds
=
new
DataSet();
try
{
da.Fill(ds,
"
ds
"
);
cmd.Parameters.Clear();
}
catch
(System.Data.SqlClient.SqlException ex)
{
throw
new
Exception(ex.Message);
}
return
ds;
}
}
}
private
static
void
PrepareCommand(SqlCommand cmd,SqlConnection conn,SqlTransaction trans,
string
cmdText, SqlParameter[] cmdParms)
{
if
(conn.State
!=
ConnectionState.Open)
conn.Open();
cmd.Connection
=
conn;
cmd.CommandText
=
cmdText;
if
(trans
!=
null
)
cmd.Transaction
=
trans;
cmd.CommandType
=
CommandType.Text;
//
cmdType;
if
(cmdParms
!=
null
)
{
foreach
(SqlParameter parm
in
cmdParms)
cmd.Parameters.Add(parm);
}
}
#endregion
存储过程操作
#region
存储过程操作
/**/
///
<summary>
///
执行存储过程
///
</summary>
///
<param name="storedProcName">
存储过程名
</param>
///
<param name="parameters">
存储过程参数
</param>
///
<returns>
SqlDataReader
</returns>
public
static
SqlDataReader RunProcedure(
string
storedProcName, IDataParameter[] parameters )
{
SqlConnection connection
=
new
SqlConnection(connectionString);
SqlDataReader returnReader;
connection.Open();
SqlCommand command
=
BuildQueryCommand( connection,storedProcName, parameters );
command.CommandType
=
CommandType.StoredProcedure;
returnReader
=
command.ExecuteReader();
return
returnReader;
}
/**/
///
<summary>
///
执行存储过程
///
</summary>
///
<param name="storedProcName">
存储过程名
</param>
///
<param name="parameters">
存储过程参数
</param>
///
<param name="tableName">
DataSet结果中的表名
</param>
///
<returns>
DataSet
</returns>
public
static
DataSet RunProcedure(
string
storedProcName, IDataParameter[] parameters,
string
tableName )
{
using
(SqlConnection connection
=
new
SqlConnection(connectionString))
{
DataSet dataSet
=
new
DataSet();
connection.Open();
SqlDataAdapter sqlDA
=
new
SqlDataAdapter();
sqlDA.SelectCommand
=
BuildQueryCommand(connection, storedProcName, parameters );
sqlDA.Fill( dataSet, tableName );
connection.Close();
return
dataSet;
}
}
/**/
///
<summary>
///
构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值)
///
</summary>
///
<param name="connection">
数据库连接
</param>
///
<param name="storedProcName">
存储过程名
</param>
///
<param name="parameters">
存储过程参数
</param>
///
<returns>
SqlCommand
</returns>
private
static
SqlCommand BuildQueryCommand(SqlConnection connection,
string
storedProcName, IDataParameter[] parameters)
{
SqlCommand command
=
new
SqlCommand( storedProcName, connection );
command.CommandType
=
CommandType.StoredProcedure;
foreach
(SqlParameter parameter
in
parameters)
{
command.Parameters.Add( parameter );
}
return
command;
}
/**/
///
<summary>
///
执行存储过程,返回影响的行数
///
</summary>
///
<param name="storedProcName">
存储过程名
</param>
///
<param name="parameters">
存储过程参数
</param>
///
<param name="rowsAffected">
影响的行数
</param>
///
<returns></returns>
public
static
int
RunProcedure(
string
storedProcName, IDataParameter[] parameters,
out
int
rowsAffected )
{
using
(SqlConnection connection
=
new
SqlConnection(connectionString))
{
int
result;
connection.Open();
SqlCommand command
=
BuildIntCommand(connection,storedProcName, parameters );
rowsAffected
=
command.ExecuteNonQuery();
result
=
(
int
)command.Parameters[
"
ReturnValue
"
].Value;
//
Connection.Close();
return
result;
}
}
/**/
///
<summary>
///
创建 SqlCommand 对象实例(用来返回一个整数值)
///
</summary>
///
<param name="storedProcName">
存储过程名
</param>
///
<param name="parameters">
存储过程参数
</param>
///
<returns>
SqlCommand 对象实例
</returns>
private
static
SqlCommand BuildIntCommand(SqlConnection connection,
string
storedProcName, IDataParameter[] parameters)
{
SqlCommand command
=
BuildQueryCommand(connection,storedProcName, parameters );
command.Parameters.Add(
new
SqlParameter (
"
ReturnValue
"
,
SqlDbType.Int,
4
,ParameterDirection.ReturnValue,
false
,
0
,
0
,
string
.Empty,DataRowVersion.Default,
null
));
return
command;
}
#endregion
}
}
查看全文
相关阅读:
用对象模式实现QTP的远程调用
Python 常用类库
User32.dll 函数的相关方法整理
python ConfigParser – 配置文件解析
python 中的 __init__()解释
Access to the database file is not allowed. [ File name = ***\DataBase.sdf
在遗忘中成长
在MVC3里如何关闭Form标签
javascript 中写cookie
.NET之死和观念的力量【】
原文地址:https://www.cnblogs.com/nianshi/p/821412.html
最新文章
(zt)Flash破解与加密综合
TGE学习笔记05 阴影
TGE学习笔记08 DIF与DTS的区别
TGE学习笔记06 动画模型
(zt)介绍Cairngorm
(zt)超级玛丽全地图 线路 道具 攻略
flex学习笔记01 安装amfphp
(zt)GPU深度发掘(二)::OpenGL FrameBuffer Object 101
flex学习笔记02 WebORB
TGE学习笔记07 脚本控制动画
热门文章
Python中zip()函数用法举例 规格严格
调节file文件上传框的样式
Chrome调试js
ajaxfileupload.js在IE中的支持问题
redis学习教程之一基本命令
TesseractOCR3.01语言库训练步骤
python 常用的50个模块
QTP11破解
RubyMine4.5.4 debug手动安装方法简介
QTP插件破解
Copyright © 2011-2022 走看看