微软通用的DBHelper

  1. usingSystem;
  2. usingSystem.Configuration;
  3. usingSystem.Data;
  4. usingSystem.Data.Common;
  5. usingSystem.Data.OleDb;
  6. usingSystem.Data.SqlClient;
  7. namespaceLelog.Data
  8. {
  9. ///<summary>
  10. ///数据库助手类
  11. ///</summary>
  12. publicclassDbHelper
  13. {
  14. privatestaticstringdbProviderName=ConfigurationSettings.AppSettings["DbProviderName"];
  15. privatestaticstringdbConnectionString=ConfigurationManager.AppSettings["TaxInvoiceConn"];
  16. privateDbConnectionconnection;
  17. publicDbHelper()
  18. {
  19. this.connection=CreateConnection(DbHelper.dbConnectionString);
  20. }
  21. publicDbHelper(stringconnectionString)
  22. {
  23. this.connection=CreateConnection(connectionString);
  24. }
  25. publicstaticDbConnectionCreateConnection()
  26. {
  27. DbProviderFactorydbfactory=DbProviderFactories.GetFactory(DbHelper.dbProviderName);
  28. DbConnectiondbconn=dbfactory.CreateConnection();
  29. dbconn.ConnectionString=DbHelper.dbConnectionString;
  30. returndbconn;
  31. }
  32. publicstaticDbConnectionCreateConnection(stringconnectionString)
  33. {
  34. DbProviderFactorydbfactory=DbProviderFactories.GetFactory(DbHelper.dbProviderName);
  35. DbConnectiondbconn=dbfactory.CreateConnection();
  36. dbconn.ConnectionString=connectionString;
  37. returndbconn;
  38. }
  39. publicDbCommandGetStoredProcCommond(stringstoredProcedure)
  40. {
  41. DbCommanddbCommand=connection.CreateCommand();
  42. dbCommand.CommandText=storedProcedure;
  43. dbCommand.CommandType=CommandType.StoredProcedure;
  44. returndbCommand;
  45. }
  46. publicDbCommandGetSqlStringCommond(stringsqlQuery)
  47. {
  48. DbCommanddbCommand=connection.CreateCommand();
  49. dbCommand.CommandText=sqlQuery;
  50. dbCommand.CommandType=CommandType.Text;
  51. returndbCommand;
  52. }
  53. #region增加参数
  54. publicvoidAddParameterCollection(DbCommandcmd,DbParameterCollectiondbParameterCollection)
  55. {
  56. foreach(DbParameterdbParameterindbParameterCollection)
  57. {
  58. cmd.Parameters.Add(dbParameter);
  59. }
  60. }
  61. publicvoidAddOutParameter(DbCommandcmd,stringparameterName,DbTypedbType,intsize)
  62. {
  63. DbParameterdbParameter=cmd.CreateParameter();
  64. dbParameter.DbType=dbType;
  65. dbParameter.ParameterName=parameterName;
  66. dbParameter.Size=size;
  67. dbParameter.Direction=ParameterDirection.Output;
  68. cmd.Parameters.Add(dbParameter);
  69. }
  70. publicvoidAddInParameter(DbCommandcmd,stringparameterName,DbTypedbType,objectvalue)
  71. {
  72. DbParameterdbParameter=cmd.CreateParameter();
  73. dbParameter.DbType=dbType;
  74. dbParameter.ParameterName=parameterName;
  75. dbParameter.Value=value;
  76. dbParameter.Direction=ParameterDirection.Input;
  77. cmd.Parameters.Add(dbParameter);
  78. }
  79. publicvoidAddReturnParameter(DbCommandcmd,stringparameterName,DbTypedbType)
  80. {
  81. DbParameterdbParameter=cmd.CreateParameter();
  82. dbParameter.DbType=dbType;
  83. dbParameter.ParameterName=parameterName;
  84. dbParameter.Direction=ParameterDirection.ReturnValue;
  85. cmd.Parameters.Add(dbParameter);
  86. }
  87. publicDbParameterGetParameter(DbCommandcmd,stringparameterName)
  88. {
  89. returncmd.Parameters[parameterName];
  90. }
  91. #endregion
  92. #region执行
  93. publicDataSetExecuteDataSet(DbCommandcmd)
  94. {
  95. DbProviderFactorydbfactory=DbProviderFactories.GetFactory(DbHelper.dbProviderName);
  96. DbDataAdapterdbDataAdapter=dbfactory.CreateDataAdapter();
  97. dbDataAdapter.SelectCommand=cmd;
  98. DataSetds=newDataSet();
  99. dbDataAdapter.Fill(ds);
  100. returnds;
  101. }
  102. publicDataTableExecuteDataTable(DbCommandcmd)
  103. {
  104. DbProviderFactorydbfactory=DbProviderFactories.GetFactory(DbHelper.dbProviderName);
  105. DbDataAdapterdbDataAdapter=dbfactory.CreateDataAdapter();
  106. dbDataAdapter.SelectCommand=cmd;
  107. DataTabledataTable=newDataTable();
  108. dbDataAdapter.Fill(dataTable);
  109. returndataTable;
  110. }
  111. publicDbDataReaderExecuteReader(DbCommandcmd)
  112. {
  113. cmd.Connection.Open();
  114. DbDataReaderreader=cmd.ExecuteReader(CommandBehavior.CloseConnection);
  115. returnreader;
  116. }
  117. publicintExecuteNonQuery(DbCommandcmd)
  118. {
  119. cmd.Connection.Open();
  120. intret=cmd.ExecuteNonQuery();
  121. cmd.Connection.Close();
  122. returnret;
  123. }
  124. publicobjectExecuteScalar(DbCommandcmd)
  125. {
  126. cmd.Connection.Open();
  127. objectret=cmd.ExecuteScalar();
  128. cmd.Connection.Close();
  129. returnret;
  130. }
  131. #endregion
  132. #region执行事务
  133. publicDataSetExecuteDataSet(DbCommandcmd,Transt)
  134. {
  135. cmd.Connection=t.DbConnection;
  136. cmd.Transaction=t.DbTrans;
  137. DbProviderFactorydbfactory=DbProviderFactories.GetFactory(DbHelper.dbProviderName);
  138. DbDataAdapterdbDataAdapter=dbfactory.CreateDataAdapter();
  139. dbDataAdapter.SelectCommand=cmd;
  140. DataSetds=newDataSet();
  141. dbDataAdapter.Fill(ds);
  142. returnds;
  143. }
  144. publicDataTableExecuteDataTable(DbCommandcmd,Transt)
  145. {
  146. cmd.Connection=t.DbConnection;
  147. cmd.Transaction=t.DbTrans;
  148. DbProviderFactorydbfactory=DbProviderFactories.GetFactory(DbHelper.dbProviderName);
  149. DbDataAdapterdbDataAdapter=dbfactory.CreateDataAdapter();
  150. dbDataAdapter.SelectCommand=cmd;
  151. DataTabledataTable=newDataTable();
  152. dbDataAdapter.Fill(dataTable);
  153. returndataTable;
  154. }
  155. publicDbDataReaderExecuteReader(DbCommandcmd,Transt)
  156. {
  157. cmd.Connection.Close();
  158. cmd.Connection=t.DbConnection;
  159. cmd.Transaction=t.DbTrans;
  160. DbDataReaderreader=cmd.ExecuteReader();
  161. DataTabledt=newDataTable();
  162. returnreader;
  163. }
  164. publicintExecuteNonQuery(DbCommandcmd,Transt)
  165. {
  166. cmd.Connection.Close();
  167. cmd.Connection=t.DbConnection;
  168. cmd.Transaction=t.DbTrans;
  169. intret=cmd.ExecuteNonQuery();
  170. returnret;
  171. }
  172. publicobjectExecuteScalar(DbCommandcmd,Transt)
  173. {
  174. cmd.Connection.Close();
  175. cmd.Connection=t.DbConnection;
  176. cmd.Transaction=t.DbTrans;
  177. objectret=cmd.ExecuteScalar();
  178. returnret;
  179. }
  180. #endregion
  181. }
  182. publicclassTrans:IDisposable
  183. {
  184. privateDbConnectionconn;
  185. privateDbTransactiondbTrans;
  186. publicDbConnectionDbConnection
  187. {
  188. get{returnthis.conn;}
  189. }
  190. publicDbTransactionDbTrans
  191. {
  192. get{returnthis.dbTrans;}
  193. }
  194. publicTrans()
  195. {
  196. conn=DbHelper.CreateConnection();
  197. conn.Open();
  198. dbTrans=conn.BeginTransaction();
  199. }
  200. publicTrans(stringconnectionString)
  201. {
  202. conn=DbHelper.CreateConnection(connectionString);
  203. conn.Open();
  204. dbTrans=conn.BeginTransaction();
  205. }
  206. publicvoidCommit()
  207. {
  208. dbTrans.Commit();
  209. this.Colse();
  210. }
  211. publicvoidRollBack()
  212. {
  213. dbTrans.Rollback();
  214. this.Colse();
  215. }
  216. publicvoidDispose()
  217. {
  218. this.Colse();
  219. }
  220. publicvoidColse()
  221. {
  222. if(conn.State==System.Data.ConnectionState.Open)
  223. {
  224. conn.Close();
  225. }
  226. }
  227. }
  228. }

2、直接执行sql语句

  1. DbHelperdb=newDbHelper();
  2. DbCommandcmd=db.GetSqlStringCommond("insertt1(id)values(‘?haha‘?)");
  3. db.ExecuteNonQuery(cmd);

3、执行存储过程

  1. DbHelperdb=newDbHelper();
  2. DbCommandcmd=db.GetStoredProcCommond("t1_insert");
  3. db.AddInParameter(cmd,"@id",DbType.String,"heihei");
  4. db.ExecuteNonQuery(cmd);

4、返回DataSet

  1. DbHelperdb=newDbHelper();
  2. DbCommandcmd=db.GetSqlStringCommond("select*fromt1");
  3. DataSetds=db.ExecuteDataSet(cmd);

5、返回DataTable

  1. DbHelperdb=newDbHelper();
  2. DbCommandcmd=db.GetSqlStringCommond("t1_findall");
  3. DataTabledt=db.ExecuteDataTable(cmd);

6、输入参数/输出参数/返回值的使用(比较重要哦)

  1. DbHelperdb=newDbHelper();
  2. DbCommandcmd=db.GetStoredProcCommond("t2_insert");
  3. db.AddInParameter(cmd,"@timeticks",DbType.Int64,DateTime.Now.Ticks);
  4. db.AddOutParameter(cmd,"@outString",DbType.String,20);
  5. db.AddReturnParameter(cmd,"@returnValue",DbType.Int32);
  6. db.ExecuteNonQuery(cmd);
  7. strings=db.GetParameter(cmd,"@outString").Valueasstring;
  8. intr=Convert.ToInt32(db.GetParameter(cmd,"@returnValue").Value);

7、DataReader使用

  1. DbHelperdb=newDbHelper();
  2. DbCommandcmd=db.GetStoredProcCommond("t2_insert");
  3. db.AddInParameter(cmd,"@timeticks",DbType.Int64,DateTime.Now.Ticks);
  4. db.AddOutParameter(cmd,"@outString",DbType.String,20);
  5. db.AddReturnParameter(cmd,"@returnValue",DbType.Int32);
  6. using(DbDataReaderreader=db.ExecuteReader(cmd))
  7. {
  8. dt.Load(reader);
  9. }
  10. strings=db.GetParameter(cmd,"@outString").Valueasstring;
  11. intr=Convert.ToInt32(db.GetParameter(cmd,"@returnValue").Value);

8、事务的使用.(项目中需要将基本的数据库操作组合成一个完整的业务流时,代码级的事务是必不可少的哦)

以上我们好像没有指定数据库连接字符串,大家如果看下DbHelper的代码,就知道要使用它必须在config中配置两个参数,如下:

  1. pubicvoidDoBusiness()
  2. {
  3. using(Transt=newTrans())
  4. {
  5. try
  6. {
  7. D1(t);
  8. thrownewException();
  9. D2(t);
  10. t.Commit();
  11. }
  12. catch
  13. {
  14. t.RollBack();
  15. }
  16. }
  17. }
  18. publicvoidD1(Transt)
  19. {
  20. DbHelperdb=newDbHelper();
  21. DbCommandcmd=db.GetStoredProcCommond("table_insert");
  22. db.AddInParameter(cmd,"@timeticks",DbType.Int64,DateTime.Now.Ticks);
  23. db.AddOutParameter(cmd,"@outString",DbType.String,20);
  24. db.AddReturnParameter(cmd,"@returnValue",DbType.Int32);
  25. if(t==null)db.ExecuteNonQuery(cmd);
  26. elsedb.ExecuteNonQuery(cmd,t);
  27. strings=db.GetParameter(cmd,"@outString").Valueasstring;
  28. intr=Convert.ToInt32(db.GetParameter(cmd,"@returnValue").Value);
  29. }
  30. publicvoidD2(Transt)
  31. {
  32. DbHelperdb=newDbHelper();
  33. DbCommandcmd=db.GetSqlStringCommond("inserttable(id)values(@id)");
  34. if(t==null)db.ExecuteNonQuery(cmd);
  35. elsedb.ExecuteNonQuery(cmd,t);
  36. }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值