`
ihuashao
  • 浏览: 4544429 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

封装的ADO.NET对数据库操作经典类

阅读更多
usingSystem;
usingSystem.Collections;
usingSystem.Collections.Specialized;
usingSystem.Runtime.Remoting.Messaging;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Configuration;
namespaceLTP.SQLServerDAL
...{
/**////<summary>
///ADO.NET数据库操作基础类。
///</summary>

publicabstractclassDbManagerSQL
...{
//数据库连接字符串
protectedstaticstringconnectionString=ConfigurationSettings.AppSettings["ConnectionString"];
publicDbManagerSQL()
...{
//
//TODO:在此处添加构造函数逻辑
//
}

/**////<summary>
///执行SQL语句,返回影响的记录数
///</summary>
///<paramname="SQLString"></param>
///<returns></returns>

publicstaticintExecuteSql(stringSQLString)
...{
using(SqlConnectionconnection=newSqlConnection(connectionString))
...{
using(SqlCommandcmd=newSqlCommand(SQLString,connection))
...{
try
...{
connection.Open();
introws=cmd.ExecuteNonQuery();
returnrows;
}

catch(System.Data.SqlClient.SqlExceptionE)
...{
thrownewException(E.Message);
}

}

}

}

/**////<summary>
///执行两条SQL语句,实现数据库事务。
///</summary>
///<paramname="SQLString1"></param>
///<paramname="SQLString2"></param>

publicstaticvoidExecuteSqlTran(stringSQLString1,stringSQLString2)
...{
using(SqlConnectionconnection=newSqlConnection(connectionString))
...{
connection.Open();
SqlCommandcmd
=newSqlCommand();
cmd.Connection
=connection;
SqlTransactiontx
=connection.BeginTransaction();
cmd.Transaction
=tx;
try
...{
cmd.CommandText
=SQLString1;
cmd.ExecuteNonQuery();
cmd.CommandText
=SQLString2;
cmd.ExecuteNonQuery();
tx.Commit();
}

catch(System.Data.SqlClient.SqlExceptionE)
...{
tx.Rollback();
thrownewException(E.Message);
}

finally
...{
cmd.Dispose();
connection.Close();
}

}

}

/**////<summary>
///执行多条SQL语句,实现数据库事务,每条语句以“;”分割。
///</summary>
///<paramname="SQLStringList"></param>

publicstaticvoidExecuteSqlTran(stringSQLStringList)
...{
using(OdbcConnectionconn=newOdbcConnection(connectionString))
...{
conn.Open();
OdbcCommandcmd
=newOdbcCommand();
cmd.Connection
=conn;
OdbcTransactiontx
=conn.BeginTransaction();
cmd.Transaction
=tx;
try
...{
string[]split=SQLStringList.Split(newChar[]...{';'});
foreach(stringstrsqlinsplit)
...{
if(strsql.Trim()!="")
...{
cmd.CommandText
=strsql;
cmd.ExecuteNonQuery();
}

}

tx.Commit();
}

catch(System.Data.Odbc.OdbcExceptionE)
...{
tx.Rollback();
thrownewException(E.Message);
}

}

}

/**////<summary>
///执行带一个存储过程参数的的SQL语句。
///</summary>
///<paramname="SQLString"></param>
///<paramname="content"></param>
///<returns></returns>

publicstaticintExecuteSql(stringSQLString,stringcontent)
...{
using(SqlConnectionconnection=newSqlConnection(connectionString))
...{
SqlCommandcmd
=newSqlCommand(SQLString,connection);
System.Data.SqlClient.SqlParametermyParameter
=newSystem.Data.SqlClient.SqlParameter("@content",SqlDbType.NText);
myParameter.Value
=content;
cmd.Parameters.Add(myParameter);
try
...{
connection.Open();
introws=cmd.ExecuteNonQuery();
returnrows;
}

catch(System.Data.SqlClient.SqlExceptionE)
...{
thrownewException(E.Message);
}

finally
...{
cmd.Dispose();
connection.Close();
}

}

}

/**////<summary>
///向数据库里插入图像格式的字段
///</summary>
///<paramname="strSQL"></param>
///<paramname="fs"></param>
///<returns></returns>

publicstaticintExecuteSqlInsertImg(stringstrSQL,byte[]fs)
...{
using(SqlConnectionconnection=newSqlConnection(connectionString))
...{
SqlCommandcmd
=newSqlCommand(strSQL,connection);
System.Data.SqlClient.SqlParametermyParameter
=newSystem.Data.SqlClient.SqlParameter("@fs",SqlDbType.Image);
myParameter.Value
=fs;
cmd.Parameters.Add(myParameter);
try
...{
connection.Open();
introws=cmd.ExecuteNonQuery();
returnrows;
}

catch(System.Data.SqlClient.SqlExceptionE)
...{
thrownewException(E.Message);
}

finally
...{
cmd.Dispose();
connection.Close();
}


}

}

/**////<summary>
///执行一条计算查询结果语句,返回查询结果(整数)。
///</summary>
///<paramname="strSQL"></param>
///<returns></returns>

publicstaticintGetCount(stringstrSQL)
...{
using(SqlConnectionconnection=newSqlConnection(connectionString))
...{
SqlCommandcmd
=newSqlCommand(strSQL,connection);
try
...{
connection.Open();
SqlDataReaderresult
=cmd.ExecuteReader();
inti=0;
while(result.Read())
...{
i
=result.GetInt32(0);
}

result.Close();
returni;
}

catch(System.Data.SqlClient.SqlExceptione)
...{
thrownewException(e.Message);
}

finally
_5044_5095_Closed_Tex
分享到:
评论

相关推荐

    asp.net知识库

    改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+总结 [ADO.NET]由数据库触发器引发的问题 为ASP.NET封装的SQL数据库访问类 DataTable.Select方法的性能问题 .NET 2.0里使用强...

    亮剑.NET深入体验与实战精要2

    5.2 数据库操作类的封装详解 217 5.2.1 执行命令方法的封装 217 5.2.2 查询数据方法的封装 220 5.2.3 数据统计方法的封装 221 5.2.4 实现SqlParameter方式 222 5.2.5 实现多数据库的访问 223 5.3 常用经典SQL语句 ...

    史上最好传智播客就业班.net培训教程60G 不下会后悔

    这个项目完全按照高访问量互联网站进行设计,通过这个项目,学员不仅可以在实战中巩固对前面学习的ASP.Net、ADO.Net、WinForm等知识的掌握,还可以掌握网站防黑、缓存、SEO、静态化、搜索引擎技术、AJAX等大型互联网...

    亮剑.NET深入体验与实战精要3

    5.2 数据库操作类的封装详解 217 5.2.1 执行命令方法的封装 217 5.2.2 查询数据方法的封装 220 5.2.3 数据统计方法的封装 221 5.2.4 实现SqlParameter方式 222 5.2.5 实现多数据库的访问 223 5.3 常用经典SQL语句 ...

    《C#经典编程220例》.(明日科技).【带书签】-共3部分

    实例128 使用ado.net对象录入数据 217 实例129 利用存储过程录入数据 219 实例130 使用oledbdatareader读取文本文件的内容 222 实例131 使用sqldatareader读取用户登录信息 223 实例132 使用断开式连接的方式录入...

    net学习笔记及其他代码应用

    18.net中读写数据库需要用到那些类?他们的作用? 答:DataSet:数据存储器。 DataCommand:执行语句命令。 DataAdapter:数据的集合,用语填充。 19.ASP.net的身份验证方式有哪些?分别是什么原理? 答:10。...

    vc++ 应用源码包_1

    一个视频捕捉类对摄像头的操作。 VC+++暴风影音(Media+Player+Classic)源码 知道的人不多,但提起国内的暴风影音,我想知道的人就多了,其实暴风影音就是Media Player Classic,暴风影音只是同我一样从Gabest官方下载到...

    vc++ 应用源码包_2

    一个视频捕捉类对摄像头的操作。 VC+++暴风影音(Media+Player+Classic)源码 知道的人不多,但提起国内的暴风影音,我想知道的人就多了,其实暴风影音就是Media Player Classic,暴风影音只是同我一样从Gabest官方下载到...

    vc++ 应用源码包_6

    一个视频捕捉类对摄像头的操作。 VC+++暴风影音(Media+Player+Classic)源码 知道的人不多,但提起国内的暴风影音,我想知道的人就多了,其实暴风影音就是Media Player Classic,暴风影音只是同我一样从Gabest官方下载到...

    vc++ 应用源码包_5

    一个视频捕捉类对摄像头的操作。 VC+++暴风影音(Media+Player+Classic)源码 知道的人不多,但提起国内的暴风影音,我想知道的人就多了,其实暴风影音就是Media Player Classic,暴风影音只是同我一样从Gabest官方下载到...

    vc++ 应用源码包_3

    一个视频捕捉类对摄像头的操作。 VC+++暴风影音(Media+Player+Classic)源码 知道的人不多,但提起国内的暴风影音,我想知道的人就多了,其实暴风影音就是Media Player Classic,暴风影音只是同我一样从Gabest官方下载到...

    vc++ 开发实例源码包

    IOCP封装类(DLL)发布 主要是CIocpSrv"伪类",实际上还是调用的DLL, IOCP完成端口 [1]---选择 - Select [2]异步选择 - WSAAsyncSelect [3]---事件选择 - WSAEventSelect [4]---重叠I [5]---完成端口 IP所在地查询器 ...

    Visual Basic 2010入门经典.part1.rar

    16.1.1 使用类来封装数据和代码 259 16.1.2 比较类和标准模块 259 16.1.3 创建对象接口 260 16.2 根据类实例化对象 265 16.2.1 将对象引用绑定到变量 265 16.2.2 解除对象引用 269 16.2.3 理解对象的生命周期...

    Visual Basic 2010入门经典.part2.rar

    16.1.1 使用类来封装数据和代码 259 16.1.2 比较类和标准模块 259 16.1.3 创建对象接口 260 16.2 根据类实例化对象 265 16.2.1 将对象引用绑定到变量 265 16.2.2 解除对象引用 269 16.2.3 理解对象的生命周期...

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    [Visual.Basic.2010.入门经典(第6版)].Thearon.Willi等.扫描版(1/2)

    2.2.1 .NET Framework类 ............... 23 2.2.2 执行代码 ................................ 24 2.3 公共语言运行时 ........................ 25 2.3.1 载入并执行代码 .................... 25 ...

Global site tag (gtag.js) - Google Analytics