iLinux
自由、梦想、飞翔 --- Free Dream Soar
登录
注册
全站
当前博客
空间
博客
好友
相册
留言
forlinux
ID:forlinux
共
86283
次访问,排名
1068
好友
2
人,关注者
4
人
forlinux的文章
原创 79 篇
翻译 0 篇
转载 67 篇
评论 74 篇
只爱LINUX的公告
机遇+努力=成功
努力才会有希望...
最近评论
forlinux:
另: 使用 Ndiswrapper时,若linux是64位的,得使用64位的windows驱动程序
bingbingw:
谢谢啊,多谢了
vvukqr:
WoW Gold
vvukqr:
WoW Gold
vvukqr:
WoW Gold
文章分类
.net
(RSS)
.NET/windows
(RSS)
Eclipse应用技术
(RSS)
JSP/JAVA
(RSS)
LINUX/UNIX技术
(RSS)
PHP
(RSS)
Python/Perl/Ruby
(RSS)
web
(RSS)
WEB服务器
(RSS)
软件工程
(RSS)
数据库技术
(RSS)
随笔
(RSS)
收藏
JavaScript资源
相册
只爱这一秒
.NET资源
.net Free soft
dotnet开源
Filehelper-Exp/Imp Data2DB
MSDN-library
Ajax Framework
jquery——The writte less,do more
prototype.js
prototype.js开发者文档
JAVA资源
java开源大全
中国IT实验室ECLIPSE专题
linux资源
202.96.64.144
ChinaUnix网友空间
Cooperative Linux(colinux)
OpenSSH For Windows
Oracle On Linux
Reactos(Wine Base)
Wine模拟器
健兔linux
成都理工大学FTP
班图LINUX
红帽Linux
长江大学FTP
鳥哥的Linux私房菜
lnux社区
linuxsir.org
linux伊甸园
linux公社
PHP资源
Apache with Open SSL
Apache软件历史版本
phpv.net
中日韩翻译
数据库相关
Oracle NetWorking FAQ
友情链接
baidu博客分站
SourceForge主页
漂在生活
闲云
存档
2008年09月(1)
2008年08月(13)
2008年07月(19)
2008年05月(5)
2008年04月(5)
2008年03月(2)
2008年02月(1)
2007年11月(2)
2007年10月(1)
2007年05月(1)
2007年03月(1)
2006年12月(4)
2006年11月(1)
2006年10月(1)
2006年09月(20)
2006年08月(10)
2006年07月(15)
2006年06月(24)
2006年05月(16)
软件项目交易
订阅我的博客
一个简单的OleDb数据操作辅助类
收藏
新一篇: C#开发的SharpDict在线词典
|
旧一篇: ASP.NET之ORACLECLINE操作辅助类(C#版)
using
System;
using
System.Data;
using
System.Data.OleDb;
using
System.Collections;
namespace
Laiyunqing.OleDbHelper
...
{
数据库连接对象
#region
数据库连接对象
/**/
///
<summary>
///
通过调用DataConnection;获得数据库连接字符串;
///
为下列两个类库提供数据库连接字符串;
///
</summary>
///
<remarks>
类名:connString
</remarks>
public
sealed
class
connString
...
{
数据库连接字符串
#region
数据库连接字符串
/**/
///
<summary>
///
属性://静态类;返回数据库连接字符串
///
</summary>
public
static
string
DbCnString
...
{
get
...
{
return
ConnectionObj.ConnectionString;
}
}
#endregion
数据库连接字符串
}
#endregion
数据库连接对象
DataObj对数据库操作的核心类库
#region
DataObj对数据库操作的核心类库
/**/
///
<summary>
///
DataObj包含对数据库的所有操作和返回各种各种对象;
///
操作:包括插入、删除、修改、事务处理等数据库相关的操作;
///
返回对象:DataReader 、DataSet等;
///
可以执行SQL语句或存储过程;
///
</summary>
public
sealed
class
DataObj
...
{
对Parameter数组参数的分配
#region
对Parameter数组参数的分配
/**/
///
<summary>
///
构造函数
///
</summary>
private
DataObj()
...
{}
/**/
///
<summary>
///
则把OleDbParameters的每一个参数赋值到OleDbCommand中;
///
</summary>
///
<param name="command">
Command对象
</param>
///
<param name="commandParameters">
OleDbParameter数组参数
</param>
private
static
void
AttachParameters(OleDbCommand command, OleDbParameter[] commandParameters)
...
{
foreach
(OleDbParameter p
in
commandParameters)
...
{
if
((p.Direction
==
ParameterDirection.InputOutput)
&&
(p.Value
==
null
))
...
{
p.Value
=
DBNull.Value;
}
command.Parameters.Add(p);
}
}
/**/
///
<summary>
///
为OleDbParameter对象赋值.
///
则分配数组的值到Parameters数组中.
///
</summary>
///
<param name="commandParameters">
OleDbParameter类型数组参数
</param>
///
<param name="parameterValues">
Parameters数组
</param>
private
static
void
AssignParameterValues(OleDbParameter[] commandParameters,
object
[] parameterValues)
...
{
if
((commandParameters
==
null
)
||
(parameterValues
==
null
))
...
{
return
;
}
//
参数长度必须与参数长度相同;否则抛出错误信息;
if
(commandParameters.Length
!=
parameterValues.Length)
...
{
throw
new
ArgumentException(
"
Parameter count does not match Parameter Value count.
"
);
}
//
分配相应的值到参数位置;
for
(
int
i
=
0
, j
=
commandParameters.Length; i
<
j; i
++
)
...
{
commandParameters[i].Value
=
parameterValues[i];
}
}
/**/
///
<summary>
///
对命令的属性进行初始化(如连接,事务等)
///
</summary>
///
<param name="command">
Command对象
</param>
///
<param name="connection">
Connection对象
</param>
///
<param name="transaction">
Transaction对象或Null'
</param>
///
<param name="commandType">
CommandType类型(SQL语句类型,普通SQL类型或存储过程类型)
</param>
///
<param name="commandText">
SQL语名或存储过程名称
</param>
///
<param name="commandParameters">
OleDbParameters数组参数
</param>
private
static
void
PrepareCommand(OleDbCommand command, OleDbConnection connection, OleDbTransaction transaction, CommandType commandType,
string
commandText, OleDbParameter[] commandParameters)
...
{
if
(connection.State
!=
ConnectionState.Open)
...
{
connection.Open();
}
command.Connection
=
connection;
command.CommandText
=
commandText;
if
(transaction
!=
null
)
...
{
command.Transaction
=
transaction;
}
command.CommandType
=
commandType;
if
(commandParameters
!=
null
)
...
{
//
绑定参数
AttachParameters(command, commandParameters);
}
return
;
}
#endregion
对Parameter数组参数的分配
ExecuteNonQuery执行插入、删除、修改、事务处理等数据库操作
#region
ExecuteNonQuery执行插入、删除、修改、事务处理等数据库操作
/**/
///
<summary>
///
1.执行数据库的增删改操作
///
</summary>
///
<param name="commandType">
执行Command对象的类型;可以是T-SQL command语句 或 存储过程;例:CommandType.Text、CommandType.StoredProcedure
</param>
///
<param name="commandText">
T-SQL command语句 或 存储过程名称 例:"Select * From Orders"、"TestStoredProcedure"
</param>
///
<returns>
返回一个System.Int32类型的执行数据库操作影响到的行数
</returns>
public
static
int
ExecuteNonQuery(CommandType commandType,
string
commandText)
...
{
//
调用重载(1--->2)
return
ExecuteNonQuery(commandType, commandText, (OleDbParameter[])
null
);
}
/**/
///
<summary>
///
2.执行数据库的增删改操作
///
</summary>
///
<remarks>
///
例:
///
int result = ExecuteNonQuery(CommandType.StoredProcedure, "PublishOrders", new OleDbParameter("@prodid", 24));
///
</remarks>
///
<param name="commandType">
执行Command对象的类型;可以是T-SQL command语句 或 存储过程;例:CommandType.Text、CommandType.StoredProcedure
</param>
///
<param name="commandText">
T-SQL command语句 或 存储过程名称 例:"Select * From Orders"、"TestStoredProcedure"
</param>
///
<param name="commandParameters">
OleDbParameters数组参数;例:OleDbParameter [] param = new OleDbParameter[1];中的名称param
</param>
///
<returns>
返回一个System.Int32类型的执行数据库操作影响到的行数
</returns>
public
static
int
ExecuteNonQuery(CommandType commandType,
string
commandText,
params
OleDbParameter[] commandParameters)
...
{
//
建立新的数据库连接对象;
using
(OleDbConnection cn
=
new
OleDbConnection(connString.DbCnString))
...
{
cn.Open();
//
调用重载(2--->5)
return
ExecuteNonQuery(cn, commandType, commandText, commandParameters);
}
}
/**/
///
<summary>
///
8.执行数据库的增删改操作
///
</summary>
///
<remarks>
///
例:
///
int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "GetOrders", new OleDbParameter("@prodid", 24));
///
</remarks>
///
<param name="transaction">
有效有Transation事务
</param>
///
<param name="commandType">
执行Command对象的类型;可以是T-SQL command语句 或 存储过程;例:CommandType.Text、CommandType.StoredProcedure
</param>
///
<param name="commandText">
T-SQL command语句 或 存储过程名称 例:"Select * From Orders"、"TestStoredProcedure"
</param>
///
<param name="commandParameters">
OleDbParameters数组参数;例:OleDbParameter [] param = new OleDbParameter[1];中的名称param
</param>
///
<returns>
返回一个System.Int32类型的执行数据库操作影响到的行数
</returns>
public
static
int
ExecuteNonQuery(OleDbTransaction transaction, CommandType commandType,
string
commandText,
params
OleDbParameter[] commandParameters)
...
{
OleDbCommand cmd
=
new
OleDbCommand();
PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters);
int
retval
=
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return
retval;
}
/**/
///
<summary>
///
5.执行数据库的增删改操作
///
</summary>
///
<remarks>
///
例:
///
int result = ExecuteNonQuery(conn, CommandType.StoredProcedure, "PublishOrders", new OleDbParameter("@prodid", 24));
///
</remarks>
///
<param name="connection">
数据库连接对象Connection
</param>
///
<param name="commandType">
执行Command对象的类型;可以是T-SQL command语句 或 存储过程;例:CommandType.Text、CommandType.StoredProcedure
</param>
///
<param name="commandText">
T-SQL command语句 或 存储过程名称 例:"Select * From Orders"、"TestStoredProcedure"
</param>
///
<param name="commandParameters">
OleDbParameters数组参数;例:OleDbParameter [] param = new OleDbParameter[1];中的名称param
</param>
///
<returns>
返回一个System.Int32类型的执行数据库操作影响到的行数
</returns>
public
static
int
ExecuteNonQuery(OleDbConnection connection, CommandType commandType,
string
commandText,
params
OleDbParameter[] commandParameters)
...
{
//
ExecuteNonQuery的核心;返回执行结果.
OleDbCommand cmd
=
new
OleDbCommand();
PrepareCommand(cmd, connection, (OleDbTransaction)
null
, commandType, commandText, commandParameters);
int
retval
=
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return
retval;
}
/**/
///
<summary>
///
10.执行带事务处理的数据库的增删改操作
///
</summary>
///
<param name="commandText">
SQL语句的字符串数组.例:string[] arrSql = {strSql1,strSql2};
</param>
///
<param name="param">
OleDbParameters参数数组;例:OleDbParameter [][] arrParam = {param1,param2};
</param>
///
<returns>
返回一个System.Int32类型的数据库事务操作影响到的几个表
</returns>
public
static
int
ExecuteNonQuery(
string
[] commandText,OleDbParameter[][] param)
...
{
using
(OleDbConnection cn
=
new
OleDbConnection (connString.DbCnString))
...
{
cn.Open();
OleDbCommand cmd
=
new
OleDbCommand ();
OleDbTransaction Trans
=
cn.BeginTransaction();
cmd.Connection
=
cn;
cmd.Transaction
=
Trans;
try