You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1561 lines
67 KiB

4 days ago
  1. using NFine.Data.Extensions;
  2. using System;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Data.Common;
  7. using System.Data.SqlClient;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace NFine.Repository
  12. {
  13. public class Database : IDatabase, IDisposable
  14. {
  15. #region 构造函数
  16. public static string connString { get; set; }
  17. /// <summary>
  18. /// 构造方法
  19. /// </summary>
  20. public Database(string connstring)
  21. {
  22. DbHelper dbhelper = new DbHelper(connstring);
  23. }
  24. /// <summary>
  25. /// 数据库连接对象
  26. /// </summary>
  27. private DbConnection dbConnection { get; set; }
  28. /// <summary>
  29. /// 事务对象
  30. /// </summary>
  31. private DbTransaction isOpenTrans { get; set; }
  32. /// <summary>
  33. /// 是否已在事务之中
  34. /// </summary>
  35. public bool inTransaction { get; set; }
  36. /// <summary>
  37. /// 事务开始
  38. /// </summary>
  39. /// <returns></returns>
  40. public DbTransaction BeginTrans()
  41. {
  42. if (!this.inTransaction)
  43. {
  44. dbConnection = DbFactory.CreateDbConnection(DbHelper.ConnectionString);
  45. if (dbConnection.State == ConnectionState.Closed)
  46. {
  47. dbConnection.Open();
  48. }
  49. inTransaction = true;
  50. isOpenTrans = dbConnection.BeginTransaction();
  51. }
  52. return isOpenTrans;
  53. }
  54. /// <summary>
  55. /// 提交事务
  56. /// </summary>
  57. public void Commit()
  58. {
  59. if (this.inTransaction)
  60. {
  61. this.inTransaction = false;
  62. this.isOpenTrans.Commit();
  63. this.Close();
  64. }
  65. }
  66. /// <summary>
  67. /// 回滚事务
  68. /// </summary>
  69. public void Rollback()
  70. {
  71. if (this.inTransaction)
  72. {
  73. this.inTransaction = false;
  74. this.isOpenTrans.Rollback();
  75. this.Close();
  76. }
  77. }
  78. /// <summary>
  79. /// 关闭数据库连接
  80. /// </summary>
  81. public void Close()
  82. {
  83. if (this.dbConnection != null)
  84. {
  85. this.dbConnection.Close();
  86. this.dbConnection.Dispose();
  87. }
  88. if (this.isOpenTrans != null)
  89. {
  90. this.isOpenTrans.Dispose();
  91. }
  92. this.dbConnection = null;
  93. this.isOpenTrans = null;
  94. }
  95. /// <summary>
  96. /// 内存回收
  97. /// </summary>
  98. public void Dispose()
  99. {
  100. if (this.dbConnection != null)
  101. {
  102. this.dbConnection.Dispose();
  103. }
  104. if (this.isOpenTrans != null)
  105. {
  106. this.isOpenTrans.Dispose();
  107. }
  108. }
  109. #endregion
  110. #region SqlBulkCopy大批量数据插入
  111. /// <summary>
  112. /// 大批量数据插入
  113. /// </summary>
  114. /// <param name="datatable">资料表</param>
  115. /// <returns></returns>
  116. public bool BulkInsert(DataTable datatable)
  117. {
  118. return false;
  119. }
  120. #endregion
  121. #region 执行SQL语句
  122. /// <summary>
  123. /// 执行SQL语句
  124. /// </summary>
  125. /// <param name="strSql">Sql语句</param>
  126. /// <returns></returns>
  127. public int ExecuteBySql(StringBuilder strSql)
  128. {
  129. return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString());
  130. }
  131. /// <summary>
  132. /// 执行SQL语句
  133. /// </summary>
  134. /// <param name="strSql">Sql语句</param>
  135. /// <param name="isOpenTrans">事务对象</param>
  136. /// <returns></returns>
  137. public int ExecuteBySql(StringBuilder strSql, DbTransaction isOpenTrans)
  138. {
  139. return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString());
  140. }
  141. /// <summary>
  142. /// 执行SQL语句
  143. /// </summary>
  144. /// <param name="strSql">Sql语句</param>
  145. /// <param name="parameters">sql语句对应参数</param>
  146. /// <returns></returns>
  147. public int ExecuteBySql(StringBuilder strSql, DbParameter[] parameters)
  148. {
  149. return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameters);
  150. }
  151. /// <summary>
  152. /// 执行SQL语句
  153. /// </summary>
  154. /// <param name="strSql">Sql语句</param>
  155. /// <param name="parameters">sql语句对应参数</param>
  156. /// <param name="isOpenTrans">事务对象</param>
  157. /// <returns></returns>
  158. public int ExecuteBySql(StringBuilder strSql, DbParameter[] parameters, DbTransaction isOpenTrans)
  159. {
  160. return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameters);
  161. }
  162. #endregion
  163. #region 执行存储过程
  164. /// <summary>
  165. /// 执行存储过程
  166. /// </summary>
  167. /// <param name="procName">存储过程</param>
  168. /// <returns></returns>
  169. public int ExecuteByProc(string procName)
  170. {
  171. return DbHelper.ExecuteNonQuery(CommandType.StoredProcedure, procName);
  172. }
  173. /// <summary>
  174. /// 执行存储过程
  175. /// </summary>
  176. /// <param name="procName">存储过程</param>
  177. /// <param name="isOpenTrans">事务对象</param>
  178. /// <returns></returns>
  179. public int ExecuteByProc(string procName, DbTransaction isOpenTrans)
  180. {
  181. return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.StoredProcedure, procName);
  182. }
  183. /// <summary>
  184. /// 执行存储过程
  185. /// </summary>
  186. /// <param name="procName">存储过程</param>
  187. /// <param name="parameters">sql语句对应参数</param>
  188. /// <returns></returns>
  189. public int ExecuteByProc(string procName, DbParameter[] parameters)
  190. {
  191. return DbHelper.ExecuteNonQuery(CommandType.StoredProcedure, procName, parameters);
  192. }
  193. /// <summary>
  194. /// 执行存储过程
  195. /// </summary>
  196. /// <param name="procName">存储过程</param>
  197. /// <param name="parameters">sql语句对应参数</param>
  198. /// <param name="isOpenTrans">事务对象</param>
  199. /// <returns></returns>
  200. public int ExecuteByProc(string procName, DbParameter[] parameters, DbTransaction isOpenTrans)
  201. {
  202. return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.StoredProcedure, procName, parameters);
  203. }
  204. #endregion
  205. #region 插入数据
  206. /// <summary>
  207. /// 插入数据
  208. /// </summary>
  209. /// <param name="entity">实体类对象</param>
  210. /// <returns></returns>
  211. public int Insert<T>(T entity)
  212. {
  213. object val = 0;
  214. StringBuilder strSql = DatabaseCommon.InsertSql<T>(entity);
  215. DbParameter[] parameter = DatabaseCommon.GetParameter<T>(entity);
  216. val = DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter);
  217. return Convert.ToInt32(val);
  218. }
  219. /// <summary>
  220. /// 插入数据
  221. /// </summary>
  222. /// <param name="entity">实体类对象</param>
  223. /// <param name="isOpenTrans">事务对象</param>
  224. /// <returns></returns>
  225. public int Insert<T>(T entity, DbTransaction isOpenTrans)
  226. {
  227. object val = 0;
  228. StringBuilder strSql = DatabaseCommon.InsertSql<T>(entity);
  229. DbParameter[] parameter = DatabaseCommon.GetParameter<T>(entity);
  230. val = DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter);
  231. return Convert.ToInt32(val);
  232. }
  233. /// <summary>
  234. /// 批量插入数据
  235. /// </summary>
  236. /// <param name="entity">实体类对象</param>
  237. /// <returns></returns>
  238. public int Insert<T>(List<T> entity)
  239. {
  240. object val = 0;
  241. DbTransaction isOpenTrans = this.BeginTrans();
  242. try
  243. {
  244. foreach (var item in entity)
  245. {
  246. this.Insert<T>(item, isOpenTrans);
  247. }
  248. this.Commit();
  249. val = 1;
  250. }
  251. catch (Exception ex)
  252. {
  253. this.Rollback();
  254. this.Close();
  255. val = -1;
  256. throw ex;
  257. }
  258. return Convert.ToInt32(val);
  259. }
  260. /// <summary>
  261. /// 批量插入数据
  262. /// </summary>
  263. /// <param name="entity">实体类对象</param>
  264. /// <param name="isOpenTrans">事务对象</param>
  265. /// <returns></returns>
  266. public int Insert<T>(List<T> entity, DbTransaction isOpenTrans)
  267. {
  268. object val = 0;
  269. try
  270. {
  271. foreach (var item in entity)
  272. {
  273. this.Insert<T>(item, isOpenTrans);
  274. }
  275. val = 1;
  276. }
  277. catch (Exception ex)
  278. {
  279. val = -1;
  280. throw ex;
  281. }
  282. return Convert.ToInt32(val);
  283. }
  284. /// <summary>
  285. /// 插入数据
  286. /// </summary>
  287. /// <param name="tableName">表名</param>
  288. /// <param name="ht">哈希表键值</param>
  289. /// <returns></returns>
  290. public int Insert(string tableName, Hashtable ht)
  291. {
  292. object val = 0;
  293. StringBuilder strSql = DatabaseCommon.InsertSql(tableName, ht);
  294. DbParameter[] parameter = DatabaseCommon.GetParameter(ht);
  295. val = DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter);
  296. return Convert.ToInt32(val);
  297. }
  298. /// <summary>
  299. /// 插入数据
  300. /// </summary>
  301. /// <param name="tableName">表名</param>
  302. /// <param name="ht">哈希表键值</param>
  303. /// <param name="isOpenTrans">事务对象</param>
  304. /// <returns></returns>
  305. public int Insert(string tableName, Hashtable ht, DbTransaction isOpenTrans)
  306. {
  307. object val = 0;
  308. StringBuilder strSql = DatabaseCommon.InsertSql(tableName, ht);
  309. DbParameter[] parameter = DatabaseCommon.GetParameter(ht);
  310. val = DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter);
  311. return Convert.ToInt32(val);
  312. }
  313. #endregion
  314. #region 修改数据
  315. /// <summary>
  316. /// 修改数据
  317. /// </summary>
  318. /// <param name="entity">实体对象</param>
  319. /// <returns></returns>
  320. public int Update<T>(T entity)
  321. {
  322. object val = 0;
  323. StringBuilder strSql = DatabaseCommon.UpdateSql<T>(entity);
  324. DbParameter[] parameter = DatabaseCommon.GetParameter<T>(entity);
  325. val = DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter);
  326. return Convert.ToInt32(val);
  327. }
  328. /// <summary>
  329. /// 修改数据
  330. /// </summary>
  331. /// <param name="entity">实体对象</param>
  332. /// <param name="isOpenTrans">事务对象</param>
  333. /// <returns></returns>
  334. public int Update<T>(T entity, DbTransaction isOpenTrans)
  335. {
  336. object val = 0;
  337. StringBuilder strSql = DatabaseCommon.UpdateSql<T>(entity);
  338. DbParameter[] parameter = DatabaseCommon.GetParameter<T>(entity);
  339. val = DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter);
  340. return Convert.ToInt32(val);
  341. }
  342. /// <summary>
  343. /// 修改数据
  344. /// </summary>
  345. /// <param name="propertyName">实体属性名称</param>
  346. /// <param name="propertyValue">字段值</param>
  347. /// <returns></returns>
  348. public int Update<T>(string propertyName, string propertyValue)
  349. {
  350. object val = 0;
  351. StringBuilder strSql = new StringBuilder();
  352. StringBuilder sb = new StringBuilder();
  353. sb.Append("Update ");
  354. sb.Append(typeof(T).Name);
  355. sb.Append(" Set ");
  356. sb.Append(propertyName);
  357. sb.Append("=");
  358. sb.Append(DbHelper.DbParmChar + propertyName);
  359. IList<DbParameter> parameter = new List<DbParameter>();
  360. parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue));
  361. val = DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter.ToArray());
  362. return Convert.ToInt32(val);
  363. }
  364. /// <summary>
  365. /// 修改数据
  366. /// </summary>
  367. /// <param name="propertyName">实体属性名称</param>
  368. /// <param name="propertyValue">字段值</param>
  369. /// <param name="isOpenTrans">事务对象</param>
  370. /// <returns></returns>
  371. public int Update<T>(string propertyName, string propertyValue, DbTransaction isOpenTrans)
  372. {
  373. object val = 0;
  374. StringBuilder strSql = new StringBuilder();
  375. StringBuilder sb = new StringBuilder();
  376. sb.Append("Update ");
  377. sb.Append(typeof(T).Name);
  378. sb.Append(" Set ");
  379. sb.Append(propertyName);
  380. sb.Append("=");
  381. sb.Append(DbHelper.DbParmChar + propertyName);
  382. IList<DbParameter> parameter = new List<DbParameter>();
  383. parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue));
  384. val = DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray());
  385. return Convert.ToInt32(val);
  386. }
  387. /// <summary>
  388. /// 批量修改数据
  389. /// </summary>
  390. /// <param name="entity">实体对象</param>
  391. /// <returns></returns>
  392. public int Update<T>(List<T> entity)
  393. {
  394. object val = 0;
  395. DbTransaction isOpenTrans = this.BeginTrans();
  396. try
  397. {
  398. foreach (var item in entity)
  399. {
  400. this.Update<T>(item, isOpenTrans);
  401. }
  402. this.Commit();
  403. val = 1;
  404. }
  405. catch (Exception ex)
  406. {
  407. this.Rollback();
  408. this.Close();
  409. val = -1;
  410. throw ex;
  411. }
  412. return Convert.ToInt32(val);
  413. }
  414. /// <summary>
  415. /// 批量修改数据
  416. /// </summary>
  417. /// <param name="entity">实体对象</param>
  418. /// <param name="isOpenTrans">事务对象</param>
  419. /// <returns></returns>
  420. public int Update<T>(List<T> entity, DbTransaction isOpenTrans)
  421. {
  422. object val = 0;
  423. try
  424. {
  425. foreach (var item in entity)
  426. {
  427. this.Update<T>(item, isOpenTrans);
  428. }
  429. val = 1;
  430. }
  431. catch (Exception ex)
  432. {
  433. val = -1;
  434. throw ex;
  435. }
  436. return Convert.ToInt32(val);
  437. }
  438. /// <summary>
  439. /// 修改数据
  440. /// </summary>
  441. /// <param name="tableName">表名</param>
  442. /// <param name="ht">哈希表键值</param>
  443. /// <param name="propertyName">主键字段</param>
  444. /// <returns></returns>
  445. public int Update(string tableName, Hashtable ht, string propertyName)
  446. {
  447. object val = 0;
  448. StringBuilder strSql = DatabaseCommon.UpdateSql(tableName, ht, propertyName);
  449. DbParameter[] parameter = DatabaseCommon.GetParameter(ht);
  450. val = DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter);
  451. return Convert.ToInt32(val);
  452. }
  453. /// <summary>
  454. /// 修改数据
  455. /// </summary>
  456. /// <param name="tableName">表名</param>
  457. /// <param name="ht">哈希表键值</param>
  458. /// <param name="propertyName">主键字段</param>
  459. /// <param name="isOpenTrans">事务对象</param>
  460. /// <returns></returns>
  461. public int Update(string tableName, Hashtable ht, string propertyName, DbTransaction isOpenTrans)
  462. {
  463. object val = 0;
  464. StringBuilder strSql = DatabaseCommon.UpdateSql(tableName, ht, propertyName);
  465. DbParameter[] parameter = DatabaseCommon.GetParameter(ht);
  466. val = DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter);
  467. return Convert.ToInt32(val);
  468. }
  469. #endregion
  470. #region 删除数据
  471. /// <summary>
  472. /// 删除数据
  473. /// </summary>
  474. /// <param name="entity">实体类</param>
  475. /// <returns></returns>
  476. public int Delete<T>(T entity)
  477. {
  478. StringBuilder strSql = DatabaseCommon.DeleteSql(entity);
  479. DbParameter[] parameter = DatabaseCommon.GetParameter<T>(entity);
  480. return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter);
  481. }
  482. /// <summary>
  483. /// 删除数据
  484. /// </summary>
  485. /// <param name="entity">实体类</param>
  486. /// <param name="isOpenTrans">事务对象</param>
  487. /// <returns></returns>
  488. public int Delete<T>(T entity, DbTransaction isOpenTrans)
  489. {
  490. StringBuilder strSql = DatabaseCommon.DeleteSql(entity);
  491. DbParameter[] parameter = DatabaseCommon.GetParameter<T>(entity);
  492. return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray());
  493. }
  494. /// <summary>
  495. /// 删除数据
  496. /// </summary>
  497. /// <param name="propertyValue">主键值</param>
  498. /// <returns></returns>
  499. public int Delete<T>(object propertyValue)
  500. {
  501. string tableName = typeof(T).Name;//获取表名
  502. string pkName = DatabaseCommon.GetKeyField<T>().ToString();//获取主键
  503. StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, pkName);
  504. IList<DbParameter> parameter = new List<DbParameter>();
  505. parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + pkName, propertyValue));
  506. return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter.ToArray());
  507. }
  508. /// <summary>
  509. /// 删除数据
  510. /// </summary>
  511. /// <param name="propertyValue">主键值</param>
  512. /// <param name="isOpenTrans">事务对象</param>
  513. /// <returns></returns>
  514. public int Delete<T>(object propertyValue, DbTransaction isOpenTrans)
  515. {
  516. string tableName = typeof(T).Name;//获取表名
  517. string pkName = DatabaseCommon.GetKeyField<T>().ToString();//获取主键
  518. StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, pkName);
  519. IList<DbParameter> parameter = new List<DbParameter>();
  520. parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + pkName, propertyValue));
  521. return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray());
  522. }
  523. /// <summary>
  524. /// 删除数据
  525. /// </summary>
  526. /// <param name="propertyName">实体属性名称</param>
  527. /// <param name="propertyValue">字段值</param>
  528. /// <returns></returns>
  529. public int Delete<T>(string propertyName, string propertyValue)
  530. {
  531. string tableName = typeof(T).Name;//获取表名
  532. StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, propertyName);
  533. IList<DbParameter> parameter = new List<DbParameter>();
  534. parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue));
  535. return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter.ToArray());
  536. }
  537. /// <summary>
  538. /// 删除数据
  539. /// </summary>
  540. /// <param name="propertyName">实体属性名称</param>
  541. /// <param name="propertyValue">字段值</param>
  542. /// <param name="isOpenTrans">事务对象</param>
  543. /// <returns></returns>
  544. public int Delete<T>(string propertyName, string propertyValue, DbTransaction isOpenTrans)
  545. {
  546. string tableName = typeof(T).Name;//获取表名
  547. StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, propertyName);
  548. IList<DbParameter> parameter = new List<DbParameter>();
  549. parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue));
  550. return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray());
  551. }
  552. /// <summary>
  553. /// 删除数据
  554. /// </summary>
  555. /// <param name="tableName">表名</param>
  556. /// <param name="propertyName">实体属性名称</param>
  557. /// <param name="propertyValue">字段值</param>
  558. /// <returns></returns>
  559. public int Delete(string tableName, string propertyName, string propertyValue)
  560. {
  561. StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, propertyName);
  562. IList<DbParameter> parameter = new List<DbParameter>();
  563. parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue));
  564. return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter.ToArray());
  565. }
  566. /// <summary>
  567. /// 删除数据
  568. /// </summary>
  569. /// <param name="tableName">表名</param>
  570. /// <param name="propertyName">实体属性名称</param>
  571. /// <param name="propertyValue">字段值</param>
  572. /// <param name="isOpenTrans">事务对象</param>
  573. /// <returns></returns>
  574. public int Delete(string tableName, string propertyName, string propertyValue, DbTransaction isOpenTrans)
  575. {
  576. StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, propertyName);
  577. IList<DbParameter> parameter = new List<DbParameter>();
  578. parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue));
  579. return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray());
  580. }
  581. /// <summary>
  582. /// 删除数据
  583. /// </summary>
  584. /// <param name="tableName">表名</param>
  585. /// <param name="ht">键值生成SQL条件</param>
  586. /// <returns></returns>
  587. public int Delete(string tableName, Hashtable ht)
  588. {
  589. StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, ht);
  590. DbParameter[] parameter = DatabaseCommon.GetParameter(ht);
  591. return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter);
  592. }
  593. /// <summary>
  594. /// 删除数据
  595. /// </summary>
  596. /// <param name="tableName">表名</param>
  597. /// <param name="ht">键值生成SQL条件</param>
  598. /// <param name="isOpenTrans">事务对象</param>
  599. /// <returns></returns>
  600. public int Delete(string tableName, Hashtable ht, DbTransaction isOpenTrans)
  601. {
  602. StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, ht);
  603. DbParameter[] parameter = DatabaseCommon.GetParameter(ht);
  604. return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter);
  605. }
  606. /// <summary>
  607. /// 批量删除数据
  608. /// </summary>
  609. /// <param name="propertyValue">主键值:数组1,2,3,4,5,6.....</param>
  610. /// <returns></returns>
  611. public int Delete<T>(object[] propertyValue)
  612. {
  613. string tableName = typeof(T).Name;//获取表名
  614. string pkName = DatabaseCommon.GetKeyField<T>().ToString();//获取主键
  615. StringBuilder strSql = new StringBuilder("DELETE FROM " + tableName + " WHERE " + pkName + " IN (");
  616. try
  617. {
  618. IList<DbParameter> parameter = new List<DbParameter>();
  619. int index = 0;
  620. string str = DbHelper.DbParmChar + "ID" + index;
  621. for (int i = 0; i < (propertyValue.Length - 1); i++)
  622. {
  623. object obj2 = propertyValue[i];
  624. str = DbHelper.DbParmChar + "ID" + index;
  625. strSql.Append(str).Append(",");
  626. parameter.Add(DbFactory.CreateDbParameter(str, obj2));
  627. index++;
  628. }
  629. str = DbHelper.DbParmChar + "ID" + index;
  630. strSql.Append(str);
  631. parameter.Add(DbFactory.CreateDbParameter(str, propertyValue[index]));
  632. strSql.Append(")");
  633. return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter.ToArray()); ;
  634. }
  635. catch (Exception ex)
  636. {
  637. throw ex;
  638. }
  639. }
  640. /// <summary>
  641. /// 批量删除数据
  642. /// </summary>
  643. /// <param name="propertyValue">主键值:数组1,2,3,4,5,6.....</param>
  644. /// <param name="isOpenTrans">事务对象</param>
  645. /// <returns></returns>
  646. public int Delete<T>(object[] propertyValue, DbTransaction isOpenTrans)
  647. {
  648. string tableName = typeof(T).Name;//获取表名
  649. string pkName = DatabaseCommon.GetKeyField<T>().ToString();//获取主键
  650. StringBuilder strSql = new StringBuilder("DELETE FROM " + tableName + " WHERE " + DbHelper.DbParmChar + pkName + " IN (");
  651. try
  652. {
  653. IList<DbParameter> parameter = new List<DbParameter>();
  654. int index = 0;
  655. string str = DbHelper.DbParmChar + "ID" + index;
  656. for (int i = 0; i < (propertyValue.Length - 1); i++)
  657. {
  658. object obj2 = propertyValue[i];
  659. str = DbHelper.DbParmChar + "ID" + index;
  660. strSql.Append(str).Append(",");
  661. parameter.Add(DbFactory.CreateDbParameter(str, obj2));
  662. index++;
  663. }
  664. str = DbHelper.DbParmChar + "ID" + index;
  665. strSql.Append(str);
  666. parameter.Add(DbFactory.CreateDbParameter(str, propertyValue[index]));
  667. strSql.Append(")");
  668. return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray()); ;
  669. }
  670. catch (Exception ex)
  671. {
  672. throw ex;
  673. }
  674. }
  675. /// <summary>
  676. /// 批量删除数据
  677. /// </summary>
  678. /// <param name="propertyName">实体属性名称</param>
  679. /// <param name="propertyValue">字段值:数组1,2,3,4,5,6.....</param>
  680. /// <returns></returns>
  681. public int Delete<T>(string propertyName, object[] propertyValue)
  682. {
  683. string tableName = typeof(T).Name;//获取表名
  684. string pkName = propertyName;
  685. StringBuilder strSql = new StringBuilder("DELETE FROM " + tableName + " WHERE " + DbHelper.DbParmChar + pkName + " IN (");
  686. try
  687. {
  688. IList<DbParameter> parameter = new List<DbParameter>();
  689. int index = 0;
  690. string str = DbHelper.DbParmChar + "ID" + index;
  691. for (int i = 0; i < (propertyValue.Length - 1); i++)
  692. {
  693. object obj2 = propertyValue[i];
  694. str = DbHelper.DbParmChar + "ID" + index;
  695. strSql.Append(str).Append(",");
  696. parameter.Add(DbFactory.CreateDbParameter(str, obj2));
  697. index++;
  698. }
  699. str = DbHelper.DbParmChar + "ID" + index;
  700. strSql.Append(str);
  701. parameter.Add(DbFactory.CreateDbParameter(str, propertyValue[index]));
  702. strSql.Append(")");
  703. return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter.ToArray()); ;
  704. }
  705. catch (Exception ex)
  706. {
  707. throw ex;
  708. }
  709. }
  710. /// <summary>
  711. /// 批量删除数据
  712. /// </summary>
  713. /// <param name="propertyName">实体属性名称</param>
  714. /// <param name="propertyValue">字段值:数组1,2,3,4,5,6.....</param>
  715. /// <param name="isOpenTrans">事务对象</param>
  716. /// <returns></returns>
  717. public int Delete<T>(string propertyName, object[] propertyValue, DbTransaction isOpenTrans)
  718. {
  719. string tableName = typeof(T).Name;//获取表名
  720. string pkName = propertyName;
  721. StringBuilder strSql = new StringBuilder("DELETE FROM " + tableName + " WHERE " + DbHelper.DbParmChar + pkName + " IN (");
  722. try
  723. {
  724. IList<DbParameter> parameter = new List<DbParameter>();
  725. int index = 0;
  726. string str = DbHelper.DbParmChar + "ID" + index;
  727. for (int i = 0; i < (propertyValue.Length - 1); i++)
  728. {
  729. object obj2 = propertyValue[i];
  730. str = DbHelper.DbParmChar + "ID" + index;
  731. strSql.Append(str).Append(",");
  732. parameter.Add(DbFactory.CreateDbParameter(str, obj2));
  733. index++;
  734. }
  735. str = DbHelper.DbParmChar + "ID" + index;
  736. strSql.Append(str);
  737. parameter.Add(DbFactory.CreateDbParameter(str, propertyValue[index]));
  738. strSql.Append(")");
  739. return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray()); ;
  740. }
  741. catch (Exception ex)
  742. {
  743. throw ex;
  744. }
  745. }
  746. /// <summary>
  747. /// 批量删除数据
  748. /// </summary>
  749. /// <param name="tableName">表名</param>
  750. /// <param name="propertyName">实体属性名称</param>
  751. /// <param name="propertyValue">字段值:数组1,2,3,4,5,6.....</param>
  752. /// <returns></returns>
  753. public int Delete(string tableName, string propertyName, object[] propertyValue)
  754. {
  755. string pkName = propertyName;
  756. StringBuilder strSql = new StringBuilder("DELETE FROM " + tableName + " WHERE " + DbHelper.DbParmChar + pkName + " IN (");
  757. try
  758. {
  759. IList<DbParameter> parameter = new List<DbParameter>();
  760. int index = 0;
  761. string str = DbHelper.DbParmChar + "ID" + index;
  762. for (int i = 0; i < (propertyValue.Length - 1); i++)
  763. {
  764. object obj2 = propertyValue[i];
  765. str = DbHelper.DbParmChar + "ID" + index;
  766. strSql.Append(str).Append(",");
  767. parameter.Add(DbFactory.CreateDbParameter(str, obj2));
  768. index++;
  769. }
  770. str = DbHelper.DbParmChar + "ID" + index;
  771. strSql.Append(str);
  772. parameter.Add(DbFactory.CreateDbParameter(str, propertyValue[index]));
  773. strSql.Append(")");
  774. return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter.ToArray()); ;
  775. }
  776. catch (Exception ex)
  777. {
  778. throw ex;
  779. }
  780. }
  781. /// <summary>
  782. /// 批量删除数据
  783. /// </summary>
  784. /// <param name="tableName">表名</param>
  785. /// <param name="propertyName">实体属性名称</param>
  786. /// <param name="propertyValue">字段值:数组1,2,3,4,5,6.....</param>
  787. /// <param name="isOpenTrans">事务对象</param>
  788. /// <returns></returns>
  789. public int Delete(string tableName, string propertyName, object[] propertyValue, DbTransaction isOpenTrans)
  790. {
  791. string pkName = propertyName;
  792. StringBuilder strSql = new StringBuilder("DELETE FROM " + tableName + " WHERE " + DbHelper.DbParmChar + pkName + " IN (");
  793. try
  794. {
  795. IList<DbParameter> parameter = new List<DbParameter>();
  796. int index = 0;
  797. string str = DbHelper.DbParmChar + "ID" + index;
  798. for (int i = 0; i < (propertyValue.Length - 1); i++)
  799. {
  800. object obj2 = propertyValue[i];
  801. str = DbHelper.DbParmChar + "ID" + index;
  802. strSql.Append(str).Append(",");
  803. parameter.Add(DbFactory.CreateDbParameter(str, obj2));
  804. index++;
  805. }
  806. str = DbHelper.DbParmChar + "ID" + index;
  807. strSql.Append(str);
  808. parameter.Add(DbFactory.CreateDbParameter(str, propertyValue[index]));
  809. strSql.Append(")");
  810. return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray()); ;
  811. }
  812. catch (Exception ex)
  813. {
  814. throw ex;
  815. }
  816. }
  817. #endregion
  818. #region 查询数据列表、返回List
  819. /// <summary>
  820. /// 查询数据列表、返回List
  821. /// </summary>
  822. /// <param name="Top">显示条数</param>
  823. /// <returns></returns>
  824. public List<T> FindListTop<T>(int Top) where T : new()
  825. {
  826. StringBuilder strSql = DatabaseCommon.SelectSql<T>(Top);
  827. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString());
  828. return DatabaseReader.ReaderToList<T>(dr);
  829. }
  830. /// <summary>
  831. /// 查询数据列表、返回List
  832. /// </summary>
  833. /// <param name="Top">显示条数</param>
  834. /// <param name="propertyName">实体属性名称</param>
  835. /// <param name="propertyValue">字段值</param>
  836. /// <returns></returns>
  837. public List<T> FindListTop<T>(int Top, string propertyName, string propertyValue) where T : new()
  838. {
  839. StringBuilder strSql = DatabaseCommon.SelectSql<T>(Top);
  840. strSql.Append(" AND " + propertyName + " = " + DbHelper.DbParmChar + propertyName);
  841. IList<DbParameter> parameter = new List<DbParameter>();
  842. parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue));
  843. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameter.ToArray());
  844. return DatabaseReader.ReaderToList<T>(dr);
  845. }
  846. /// <summary>
  847. /// 查询数据列表、返回List
  848. /// </summary>
  849. /// <param name="Top">显示条数</param>
  850. /// <param name="WhereSql">条件</param>
  851. /// <returns></returns>
  852. public List<T> FindListTop<T>(int Top, string WhereSql) where T : new()
  853. {
  854. StringBuilder strSql = DatabaseCommon.SelectSql<T>(Top);
  855. strSql.Append(WhereSql);
  856. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString());
  857. return DatabaseReader.ReaderToList<T>(dr);
  858. }
  859. /// <summary>
  860. /// 查询数据列表、返回List
  861. /// </summary>
  862. /// <param name="Top">显示条数</param>
  863. /// <param name="WhereSql">条件</param>
  864. /// <param name="parameters">sql语句对应参数</param>
  865. /// <returns></returns>
  866. public List<T> FindListTop<T>(int Top, string WhereSql, DbParameter[] parameters) where T : new()
  867. {
  868. StringBuilder strSql = DatabaseCommon.SelectSql<T>(Top);
  869. strSql.Append(WhereSql);
  870. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters);
  871. return DatabaseReader.ReaderToList<T>(dr);
  872. }
  873. /// <summary>
  874. /// 查询数据列表、返回List
  875. /// </summary>
  876. /// <returns></returns>
  877. public List<T> FindList<T>() where T : new()
  878. {
  879. StringBuilder strSql = DatabaseCommon.SelectSql<T>();
  880. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString());
  881. return DatabaseReader.ReaderToList<T>(dr);
  882. }
  883. /// <summary>
  884. /// 查询数据列表、返回List
  885. /// </summary>
  886. /// <param name="propertyName">实体属性名称</param>
  887. /// <param name="propertyValue">字段值</param>
  888. /// <returns></returns>
  889. public List<T> FindList<T>(string propertyName, string propertyValue) where T : new()
  890. {
  891. StringBuilder strSql = DatabaseCommon.SelectSql<T>();
  892. strSql.Append(" AND " + propertyName + " = " + DbHelper.DbParmChar + propertyName);
  893. IList<DbParameter> parameter = new List<DbParameter>();
  894. parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue));
  895. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameter.ToArray());
  896. return DatabaseReader.ReaderToList<T>(dr);
  897. }
  898. /// <summary>
  899. /// 查询数据列表、返回List
  900. /// </summary>
  901. /// <param name="WhereSql">条件</param>
  902. /// <returns></returns>
  903. public List<T> FindList<T>(string WhereSql) where T : new()
  904. {
  905. StringBuilder strSql = DatabaseCommon.SelectSql<T>();
  906. strSql.Append(WhereSql);
  907. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString());
  908. return DatabaseReader.ReaderToList<T>(dr);
  909. }
  910. /// <summary>
  911. /// 查询数据列表、返回List
  912. /// </summary>
  913. /// <param name="WhereSql">条件</param>
  914. /// <param name="parameters">sql语句对应参数</param>
  915. /// <returns></returns>
  916. public List<T> FindList<T>(string WhereSql, DbParameter[] parameters) where T : new()
  917. {
  918. StringBuilder strSql = DatabaseCommon.SelectSql<T>();
  919. strSql.Append(WhereSql);
  920. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters);
  921. return DatabaseReader.ReaderToList<T>(dr);
  922. }
  923. /// <summary>
  924. /// 查询数据列表、返回List
  925. /// </summary>
  926. /// <param name="strSql">Sql语句</param>
  927. /// <returns></returns>
  928. public List<T> FindListBySql<T>(string strSql)
  929. {
  930. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString());
  931. return DatabaseReader.ReaderToList<T>(dr);
  932. }
  933. /// <summary>
  934. /// 查询数据列表、返回List
  935. /// </summary>
  936. /// <param name="strSql">Sql语句</param>
  937. /// <param name="parameters">sql语句对应参数</param>
  938. /// <returns></returns>
  939. public List<T> FindListBySql<T>(string strSql, DbParameter[] parameters)
  940. {
  941. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters);
  942. return DatabaseReader.ReaderToList<T>(dr);
  943. }
  944. /// <summary>
  945. /// 查询数据列表、返回List
  946. /// </summary>
  947. /// <param name="orderField">排序字段</param>
  948. /// <param name="orderType">排序类型</param>
  949. /// <param name="pageIndex">当前页</param>
  950. /// <param name="pageSize">页大小</param>
  951. /// <param name="recordCount">返回查询条数</param>
  952. /// <returns></returns>
  953. public List<T> FindListPage<T>(string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) where T : new()
  954. {
  955. StringBuilder strSql = DatabaseCommon.SelectSql<T>();
  956. return SqlServerHelper.GetPageList<T>(strSql.ToString(), orderField, orderType, pageIndex, pageSize, ref recordCount);
  957. }
  958. /// <summary>
  959. /// 查询数据列表、返回List
  960. /// </summary>
  961. /// <param name="WhereSql">条件</param>
  962. /// <param name="orderField">排序字段</param>
  963. /// <param name="orderType">排序类型</param>
  964. /// <param name="pageIndex">当前页</param>
  965. /// <param name="pageSize">页大小</param>
  966. /// <param name="recordCount">返回查询条数</param>
  967. /// <returns></returns>
  968. public List<T> FindListPage<T>(string WhereSql, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) where T : new()
  969. {
  970. StringBuilder strSql = DatabaseCommon.SelectSql<T>();
  971. strSql.Append(WhereSql);
  972. return SqlServerHelper.GetPageList<T>(strSql.ToString(), orderField, orderType, pageIndex, pageSize, ref recordCount);
  973. }
  974. /// <summary>
  975. /// 查询数据列表、返回List
  976. /// </summary>
  977. /// <param name="WhereSql">条件</param>
  978. /// <param name="parameters">sql语句对应参数</param>
  979. /// <param name="orderField">排序字段</param>
  980. /// <param name="orderType">排序类型</param>
  981. /// <param name="pageIndex">当前页</param>
  982. /// <param name="pageSize">页大小</param>
  983. /// <param name="recordCount">返回查询条数</param>
  984. /// <returns></returns>
  985. public List<T> FindListPage<T>(string WhereSql, DbParameter[] parameters, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) where T : new()
  986. {
  987. StringBuilder strSql = DatabaseCommon.SelectSql<T>();
  988. strSql.Append(WhereSql);
  989. return SqlServerHelper.GetPageList<T>(strSql.ToString(), parameters, orderField, orderType, pageIndex, pageSize, ref recordCount);
  990. }
  991. /// <summary>
  992. /// 查询数据列表、返回List
  993. /// </summary>
  994. /// <param name="strSql">Sql语句</param>
  995. /// <param name="orderField">排序字段</param>
  996. /// <param name="orderType">排序类型</param>
  997. /// <param name="pageIndex">当前页</param>
  998. /// <param name="pageSize">页大小</param>
  999. /// <param name="recordCount">返回查询条数</param>
  1000. /// <returns></returns>
  1001. public List<T> FindListPageBySql<T>(string strSql, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount)
  1002. {
  1003. return SqlServerHelper.GetPageList<T>(strSql, orderField, orderType, pageIndex, pageSize, ref recordCount);
  1004. }
  1005. /// <summary>
  1006. /// 查询数据列表、返回List
  1007. /// </summary>
  1008. /// <param name="strSql">Sql语句</param>
  1009. /// <param name="parameters">sql语句对应参数</param>
  1010. /// <param name="orderField">排序字段</param>
  1011. /// <param name="orderType">排序类型</param>
  1012. /// <param name="pageIndex">当前页</param>
  1013. /// <param name="pageSize">页大小</param>
  1014. /// <param name="recordCount">返回查询条数</param>
  1015. /// <returns></returns>
  1016. public List<T> FindListPageBySql<T>(string strSql, DbParameter[] parameters, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount)
  1017. {
  1018. return SqlServerHelper.GetPageList<T>(strSql, parameters, orderField, orderType, pageIndex, pageSize, ref recordCount);
  1019. }
  1020. #endregion
  1021. #region 查询数据列表、返回DataTable
  1022. /// <summary>
  1023. /// 查询数据列表、返回 DataTable
  1024. /// </summary>
  1025. /// <param name="Top">显示条数</param>
  1026. /// <returns></returns>
  1027. public DataTable FindTableTop<T>(int Top) where T : new()
  1028. {
  1029. StringBuilder strSql = DatabaseCommon.SelectSql<T>(Top);
  1030. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString());
  1031. return DatabaseReader.ReaderToDataTable(dr);
  1032. }
  1033. /// <summary>
  1034. /// 查询数据列表、返回 DataTable
  1035. /// </summary>
  1036. /// <param name="Top">显示条数</param>
  1037. /// <param name="WhereSql">条件</param>
  1038. /// <returns></returns>
  1039. public DataTable FindTableTop<T>(int Top, string WhereSql) where T : new()
  1040. {
  1041. StringBuilder strSql = DatabaseCommon.SelectSql<T>(Top);
  1042. strSql.Append(WhereSql);
  1043. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString());
  1044. return DatabaseReader.ReaderToDataTable(dr);
  1045. }
  1046. /// <summary>
  1047. /// 查询数据列表、返回 DataTable
  1048. /// </summary>
  1049. /// <param name="Top">显示条数</param>
  1050. /// <param name="WhereSql">条件</param>
  1051. /// <param name="parameters">sql语句对应参数</param>
  1052. /// <returns></returns>
  1053. public DataTable FindTableTop<T>(int Top, string WhereSql, DbParameter[] parameters) where T : new()
  1054. {
  1055. StringBuilder strSql = DatabaseCommon.SelectSql<T>(Top);
  1056. strSql.Append(WhereSql);
  1057. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters);
  1058. return DatabaseReader.ReaderToDataTable(dr);
  1059. }
  1060. /// <summary>
  1061. /// 查询数据列表、返回 DataTable
  1062. /// </summary>
  1063. /// <returns></returns>
  1064. public DataTable FindTable<T>() where T : new()
  1065. {
  1066. StringBuilder strSql = DatabaseCommon.SelectSql<T>();
  1067. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString());
  1068. return DatabaseReader.ReaderToDataTable(dr);
  1069. }
  1070. /// <summary>
  1071. /// 查询数据列表、返回 DataTable
  1072. /// </summary>
  1073. /// <param name="WhereSql">条件</param>
  1074. /// <returns></returns>
  1075. public DataTable FindTable<T>(string WhereSql) where T : new()
  1076. {
  1077. StringBuilder strSql = DatabaseCommon.SelectSql<T>();
  1078. strSql.Append(WhereSql);
  1079. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString());
  1080. return DatabaseReader.ReaderToDataTable(dr);
  1081. }
  1082. /// <summary>
  1083. /// 查询数据列表、返回 DataTable
  1084. /// </summary>
  1085. /// <param name="WhereSql">条件</param>
  1086. /// <param name="parameters">sql语句对应参数</param>
  1087. /// <returns></returns>
  1088. public DataTable FindTable<T>(string WhereSql, DbParameter[] parameters) where T : new()
  1089. {
  1090. StringBuilder strSql = DatabaseCommon.SelectSql<T>();
  1091. strSql.Append(WhereSql);
  1092. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters);
  1093. return DatabaseReader.ReaderToDataTable(dr);
  1094. }
  1095. /// <summary>
  1096. /// 查询数据列表、返回 DataTable
  1097. /// </summary>
  1098. /// <param name="strSql">Sql语句</param>
  1099. /// <returns></returns>
  1100. public DataTable FindTableBySql(string strSql)
  1101. {
  1102. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString());
  1103. return DatabaseReader.ReaderToDataTable(dr);
  1104. }
  1105. /// <summary>
  1106. /// 查询数据列表、返回 DataTable
  1107. /// </summary>
  1108. /// <param name="strSql">Sql语句</param>
  1109. /// <param name="parameters">sql语句对应参数</param>
  1110. /// <returns></returns>
  1111. public DataTable FindTableBySql(string strSql, DbParameter[] parameters)
  1112. {
  1113. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters);
  1114. return DatabaseReader.ReaderToDataTable(dr);
  1115. }
  1116. /// <summary>
  1117. /// 查询数据列表、返回 DataTable
  1118. /// </summary>
  1119. /// <param name="orderField">排序字段</param>
  1120. /// <param name="orderType">排序类型</param>
  1121. /// <param name="pageIndex">当前页</param>
  1122. /// <param name="pageSize">页大小</param>
  1123. /// <param name="recordCount">返回查询条数</param>
  1124. /// <returns></returns>
  1125. public DataTable FindTablePage<T>(string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) where T : new()
  1126. {
  1127. StringBuilder strSql = DatabaseCommon.SelectSql<T>();
  1128. return SqlServerHelper.GetPageTable(strSql.ToString(), orderField, orderType, pageIndex, pageSize, ref recordCount);
  1129. }
  1130. /// <summary>
  1131. /// 查询数据列表、返回 DataTable
  1132. /// </summary>
  1133. /// <param name="WhereSql">条件</param>
  1134. /// <param name="orderField">排序字段</param>
  1135. /// <param name="orderType">排序类型</param>
  1136. /// <param name="pageIndex">当前页</param>
  1137. /// <param name="pageSize">页大小</param>
  1138. /// <param name="recordCount">返回查询条数</param>
  1139. /// <returns></returns>
  1140. public DataTable FindTablePage<T>(string WhereSql, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) where T : new()
  1141. {
  1142. StringBuilder strSql = DatabaseCommon.SelectSql<T>();
  1143. strSql.Append(WhereSql);
  1144. return SqlServerHelper.GetPageTable(strSql.ToString(), orderField, orderType, pageIndex, pageSize, ref recordCount);
  1145. }
  1146. /// <summary>
  1147. /// 查询数据列表、返回 DataTable
  1148. /// </summary>
  1149. /// <param name="WhereSql">条件</param>
  1150. /// <param name="parameters">sql语句对应参数</param>
  1151. /// <param name="orderField">排序字段</param>
  1152. /// <param name="orderType">排序类型</param>
  1153. /// <param name="pageIndex">当前页</param>
  1154. /// <param name="pageSize">页大小</param>
  1155. /// <param name="recordCount">返回查询条数</param>
  1156. /// <returns></returns>
  1157. public DataTable FindTablePage<T>(string WhereSql, DbParameter[] parameters, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) where T : new()
  1158. {
  1159. StringBuilder strSql = DatabaseCommon.SelectSql<T>();
  1160. strSql.Append(WhereSql);
  1161. return SqlServerHelper.GetPageTable(strSql.ToString(), parameters, orderField, orderType, pageIndex, pageSize, ref recordCount);
  1162. }
  1163. /// <summary>
  1164. /// 查询数据列表、返回 DataTable
  1165. /// </summary>
  1166. /// <param name="strSql">Sql语句</param>
  1167. /// <param name="orderField">排序字段</param>
  1168. /// <param name="orderType">排序类型</param>
  1169. /// <param name="pageIndex">当前页</param>
  1170. /// <param name="pageSize">页大小</param>
  1171. /// <param name="recordCount">返回查询条数</param>
  1172. /// <returns></returns>
  1173. public DataTable FindTablePageBySql(string strSql, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount)
  1174. {
  1175. return SqlServerHelper.GetPageTable(strSql, orderField, orderType, pageIndex, pageSize, ref recordCount);
  1176. }
  1177. /// <summary>
  1178. /// 查询数据列表、返回 DataTable
  1179. /// </summary>
  1180. /// <param name="strSql">Sql语句</param>
  1181. /// <param name="parameters">sql语句对应参数</param>
  1182. /// <param name="orderField">排序字段</param>
  1183. /// <param name="orderType">排序类型</param>
  1184. /// <param name="pageIndex">当前页</param>
  1185. /// <param name="pageSize">页大小</param>
  1186. /// <param name="recordCount">返回查询条数</param>
  1187. /// <returns></returns>
  1188. public DataTable FindTablePageBySql(string strSql, DbParameter[] parameters, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount)
  1189. {
  1190. return SqlServerHelper.GetPageTable(strSql, parameters, orderField, orderType, pageIndex, pageSize, ref recordCount);
  1191. }
  1192. /// <summary>
  1193. /// 查询数据列表、返回 DataTable
  1194. /// </summary>
  1195. /// <param name="procName">存储过程</param>
  1196. /// <returns></returns>
  1197. public DataTable FindTableByProc(string procName)
  1198. {
  1199. IDataReader dr = DbHelper.ExecuteReader(CommandType.StoredProcedure, procName);
  1200. return DatabaseReader.ReaderToDataTable(dr);
  1201. }
  1202. /// <summary>
  1203. /// 查询数据列表、返回 DataTable
  1204. /// </summary>
  1205. /// <param name="procName">存储过程</param>
  1206. /// <param name="parameters">sql语句对应参数</param>
  1207. /// <returns></returns>
  1208. public DataTable FindTableByProc(string procName, DbParameter[] parameters)
  1209. {
  1210. IDataReader dr = DbHelper.ExecuteReader(CommandType.StoredProcedure, procName, parameters);
  1211. return DatabaseReader.ReaderToDataTable(dr);
  1212. }
  1213. #endregion
  1214. #region 查询数据列表、返回DataSet
  1215. /// <summary>
  1216. /// 查询数据列表、返回DataSet
  1217. /// </summary>
  1218. /// <param name="strSql">Sql语句</param>
  1219. /// <returns></returns>
  1220. public DataSet FindDataSetBySql(string strSql)
  1221. {
  1222. return DbHelper.GetDataSet(CommandType.Text, strSql);
  1223. }
  1224. /// <summary>
  1225. /// 查询数据列表、返回DataSet
  1226. /// </summary>
  1227. /// <param name="strSql">Sql语句</param>
  1228. /// <param name="parameters">sql语句对应参数</param>
  1229. /// <returns></returns>
  1230. public DataSet FindDataSetBySql(string strSql, DbParameter[] parameters)
  1231. {
  1232. return DbHelper.GetDataSet(CommandType.Text, strSql, parameters);
  1233. }
  1234. /// <summary>
  1235. /// 查询数据列表、返回DataSet
  1236. /// </summary>
  1237. /// <param name="strSql">存储过程</param>
  1238. /// <returns></returns>
  1239. public DataSet FindDataSetByProc(string procName)
  1240. {
  1241. return DbHelper.GetDataSet(CommandType.StoredProcedure, procName);
  1242. }
  1243. /// <summary>
  1244. /// 查询数据列表、返回DataSet
  1245. /// </summary>
  1246. /// <param name="strSql">存储过程</param>
  1247. /// <param name="parameters">sql语句对应参数</param>
  1248. /// <returns></returns>
  1249. public DataSet FindDataSetByProc(string procName, DbParameter[] parameters)
  1250. {
  1251. return DbHelper.GetDataSet(CommandType.StoredProcedure, procName, parameters);
  1252. }
  1253. #endregion
  1254. #region 查询对象、返回实体
  1255. /// <summary>
  1256. /// 查询对象、返回实体
  1257. /// </summary>
  1258. /// <param name="propertyValue">主键值</param>
  1259. /// <returns></returns>
  1260. public T FindEntity<T>(object propertyValue) where T : new()
  1261. {
  1262. string pkName = DatabaseCommon.GetKeyField<T>().ToString();//获取主键字段
  1263. StringBuilder strSql = DatabaseCommon.SelectSql<T>(1);
  1264. strSql.Append(" AND ").Append(pkName).Append("=").Append(DbHelper.DbParmChar + pkName);
  1265. IList<DbParameter> parameter = new List<DbParameter>();
  1266. parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + pkName, propertyValue));
  1267. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameter.ToArray());
  1268. return DatabaseReader.ReaderToModel<T>(dr);
  1269. }
  1270. /// <summary>
  1271. /// 查询对象、返回实体
  1272. /// </summary>
  1273. /// <param name="propertyName">实体属性名称</param>
  1274. /// <param name="propertyValue">字段值</param>
  1275. /// <returns></returns>
  1276. public T FindEntity<T>(string propertyName, object propertyValue) where T : new()
  1277. {
  1278. string pkName = propertyName;
  1279. StringBuilder strSql = DatabaseCommon.SelectSql<T>(1);
  1280. strSql.Append(" AND ").Append(pkName).Append("=").Append(DbHelper.DbParmChar + pkName);
  1281. IList<DbParameter> parameter = new List<DbParameter>();
  1282. parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + pkName, propertyValue));
  1283. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameter.ToArray());
  1284. return DatabaseReader.ReaderToModel<T>(dr);
  1285. }
  1286. /// <summary>
  1287. /// 查询对象、返回实体
  1288. /// </summary>
  1289. /// <param name="WhereSql">条件</param>
  1290. /// <returns></returns>
  1291. public T FindEntityByWhere<T>(string WhereSql) where T : new()
  1292. {
  1293. StringBuilder strSql = DatabaseCommon.SelectSql<T>(1);
  1294. strSql.Append(WhereSql);
  1295. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString());
  1296. return DatabaseReader.ReaderToModel<T>(dr);
  1297. }
  1298. /// <summary>
  1299. /// 查询对象、返回实体
  1300. /// </summary>
  1301. /// <param name="WhereSql">条件</param>
  1302. /// <param name="parameters">sql语句对应参数</param>
  1303. /// <returns></returns>
  1304. public T FindEntityByWhere<T>(string WhereSql, DbParameter[] parameters) where T : new()
  1305. {
  1306. StringBuilder strSql = DatabaseCommon.SelectSql<T>(1);
  1307. strSql.Append(WhereSql);
  1308. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters);
  1309. return DatabaseReader.ReaderToModel<T>(dr);
  1310. }
  1311. /// <summary>
  1312. /// 查询对象、返回实体
  1313. /// </summary>
  1314. /// <param name="strSql">Sql语句</param>
  1315. /// <returns></returns>
  1316. public T FindEntityBySql<T>(string strSql)
  1317. {
  1318. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString());
  1319. return DatabaseReader.ReaderToModel<T>(dr);
  1320. }
  1321. /// <summary>
  1322. /// 查询对象、返回实体
  1323. /// </summary>
  1324. /// <param name="strSql">Sql语句</param>
  1325. /// <param name="parameters">sql语句对应参数</param>
  1326. /// <returns></returns>
  1327. public T FindEntityBySql<T>(string strSql, DbParameter[] parameters)
  1328. {
  1329. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters);
  1330. return DatabaseReader.ReaderToModel<T>(dr);
  1331. }
  1332. #endregion
  1333. #region 查询对象、返回哈希表
  1334. /// <summary>
  1335. /// 查询对象、返回哈希表
  1336. /// </summary>
  1337. /// <param name="tableName">表名</param>
  1338. /// <param name="propertyName">实体属性名称</param>
  1339. /// <param name="propertyValue">字段值</param>
  1340. /// <returns></returns>
  1341. public Hashtable FindHashtable(string tableName, string propertyName, object propertyValue)
  1342. {
  1343. StringBuilder strSql = DatabaseCommon.SelectSql(tableName, 1);
  1344. strSql.Append(" AND ").Append(propertyName).Append("=").Append(DbHelper.DbParmChar + propertyName);
  1345. IList<DbParameter> parameter = new List<DbParameter>();
  1346. parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue));
  1347. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameter.ToArray());
  1348. return DatabaseReader.ReaderToHashtable(dr);
  1349. }
  1350. /// <summary>
  1351. /// 查询对象、返回哈希表
  1352. /// </summary>
  1353. /// <param name="tableName">表名</param>
  1354. /// <param name="WhereSql">条件</param>
  1355. /// <returns></returns>
  1356. public Hashtable FindHashtable(string tableName, StringBuilder WhereSql)
  1357. {
  1358. StringBuilder strSql = DatabaseCommon.SelectSql(tableName, 1);
  1359. strSql.Append(WhereSql);
  1360. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString());
  1361. return DatabaseReader.ReaderToHashtable(dr);
  1362. }
  1363. /// <summary>
  1364. /// 查询对象、返回哈希表
  1365. /// </summary>
  1366. /// <param name="tableName">表名</param>
  1367. /// <param name="WhereSql">条件</param>
  1368. /// <param name="parameters">sql语句对应参数</param>
  1369. /// <returns></returns>
  1370. public Hashtable FindHashtable(string tableName, StringBuilder WhereSql, DbParameter[] parameters)
  1371. {
  1372. StringBuilder strSql = DatabaseCommon.SelectSql(tableName, 1);
  1373. strSql.Append(WhereSql);
  1374. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters);
  1375. return DatabaseReader.ReaderToHashtable(dr);
  1376. }
  1377. /// <summary>
  1378. /// 查询对象、返回哈希表
  1379. /// </summary>
  1380. /// <param name="strSql">Sql语句</param>
  1381. /// <returns></returns>
  1382. public Hashtable FindHashtableBySql(string strSql)
  1383. {
  1384. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString());
  1385. return DatabaseReader.ReaderToHashtable(dr);
  1386. }
  1387. /// <summary>
  1388. /// 查询对象、返回哈希表
  1389. /// </summary>
  1390. /// <param name="strSql">Sql语句</param>
  1391. /// <param name="parameters">sql语句对应参数</param>
  1392. /// <returns></returns>
  1393. public Hashtable FindHashtableBySql(string strSql, DbParameter[] parameters)
  1394. {
  1395. IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters);
  1396. return DatabaseReader.ReaderToHashtable(dr);
  1397. }
  1398. #endregion
  1399. #region 查询数据、返回条数
  1400. /// <summary>
  1401. /// 查询数据、返回条数
  1402. /// </summary>
  1403. /// <returns></returns>
  1404. public int FindCount<T>() where T : new()
  1405. {
  1406. StringBuilder strSql = DatabaseCommon.SelectCountSql<T>();
  1407. return Convert.ToInt32(DbHelper.ExecuteScalar(CommandType.Text, strSql.ToString()));
  1408. }
  1409. /// <summary>
  1410. /// 查询数据、返回条数
  1411. /// <param name="propertyName">实体属性名称</param>
  1412. /// <param name="propertyValue">字段值</param>
  1413. /// </summary>
  1414. /// <returns></returns>
  1415. public int FindCount<T>(string propertyName, string propertyValue) where T : new()
  1416. {
  1417. StringBuilder strSql = DatabaseCommon.SelectCountSql<T>();
  1418. strSql.Append(" AND " + propertyName + " = " + DbHelper.DbParmChar + propertyName);
  1419. IList<DbParameter> parameter = new List<DbParameter>();
  1420. parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue));
  1421. return Convert.ToInt32(DbHelper.ExecuteScalar(CommandType.Text, strSql.ToString(), parameter.ToArray()));
  1422. }
  1423. /// <summary>
  1424. /// 查询数据、返回条数
  1425. /// </summary>
  1426. /// <param name="WhereSql">条件</param>
  1427. /// <returns></returns>
  1428. public int FindCount<T>(string WhereSql) where T : new()
  1429. {
  1430. StringBuilder strSql = DatabaseCommon.SelectCountSql<T>();
  1431. strSql.Append(WhereSql);
  1432. return Convert.ToInt32(DbHelper.ExecuteScalar(CommandType.Text, strSql.ToString()));
  1433. }
  1434. /// <summary>
  1435. /// 查询数据、返回条数
  1436. /// </summary>
  1437. /// <param name="WhereSql">条件</param>
  1438. /// <param name="parameters">sql语句对应参数</param>
  1439. /// <returns></returns>
  1440. public int FindCount<T>(string WhereSql, DbParameter[] parameters) where T : new()
  1441. {
  1442. StringBuilder strSql = DatabaseCommon.SelectCountSql<T>();
  1443. strSql.Append(WhereSql);
  1444. return Convert.ToInt32(DbHelper.ExecuteScalar(CommandType.Text, strSql.ToString(), parameters));
  1445. }
  1446. /// <summary>
  1447. /// 查询数据、返回条数
  1448. /// </summary>
  1449. /// <param name="strSql">Sql语句</param>
  1450. /// <returns></returns>
  1451. public int FindCountBySql(string strSql)
  1452. {
  1453. return Convert.ToInt32(DbHelper.ExecuteScalar(CommandType.Text, strSql));
  1454. }
  1455. /// <summary>
  1456. /// 查询数据、返回条数
  1457. /// </summary>
  1458. /// <param name="strSql">Sql语句</param>
  1459. /// <param name="parameters">sql语句对应参数</param>
  1460. /// <returns></returns>
  1461. public int FindCountBySql(string strSql, DbParameter[] parameters)
  1462. {
  1463. return Convert.ToInt32(DbHelper.ExecuteScalar(CommandType.Text, strSql, parameters));
  1464. }
  1465. #endregion
  1466. #region 查询数据、返回最大数
  1467. /// <summary>
  1468. /// 查询数据、返回最大数
  1469. /// </summary>
  1470. /// <param name="propertyName">实体属性名称</param>
  1471. /// <returns></returns>
  1472. public object FindMax<T>(string propertyName) where T : new()
  1473. {
  1474. StringBuilder strSql = DatabaseCommon.SelectMaxSql<T>(propertyName);
  1475. return DbHelper.ExecuteScalar(CommandType.Text, strSql.ToString());
  1476. }
  1477. /// <summary>
  1478. /// 查询数据、返回最大数
  1479. /// </summary>
  1480. /// <param name="propertyName">实体属性名称</param>
  1481. /// <param name="WhereSql">条件</param>
  1482. /// <returns></returns>
  1483. public object FindMax<T>(string propertyName, string WhereSql) where T : new()
  1484. {
  1485. StringBuilder strSql = DatabaseCommon.SelectMaxSql<T>(propertyName);
  1486. strSql.Append(WhereSql);
  1487. return DbHelper.ExecuteScalar(CommandType.Text, strSql.ToString());
  1488. }
  1489. /// <summary>
  1490. /// 查询数据、返回最大数
  1491. /// </summary>
  1492. /// <param name="propertyName">实体属性名称</param>
  1493. /// <param name="WhereSql">条件</param>
  1494. /// <param name="parameters">sql语句对应参数</param>
  1495. /// <returns></returns>
  1496. public object FindMax<T>(string propertyName, string WhereSql, DbParameter[] parameters) where T : new()
  1497. {
  1498. StringBuilder strSql = DatabaseCommon.SelectMaxSql<T>(propertyName);
  1499. strSql.Append(WhereSql);
  1500. return DbHelper.ExecuteScalar(CommandType.Text, strSql.ToString(), parameters);
  1501. }
  1502. /// <summary>
  1503. /// 查询数据、返回最大数
  1504. /// </summary>
  1505. /// <param name="strSql">Sql语句</param>
  1506. /// <returns></returns>
  1507. public object FindMaxBySql(string strSql)
  1508. {
  1509. return DbHelper.ExecuteScalar(CommandType.Text, strSql);
  1510. }
  1511. /// <summary>
  1512. /// 查询数据、返回最大数
  1513. /// </summary>
  1514. /// <param name="strSql">Sql语句</param>
  1515. /// <param name="parameters">sql语句对应参数</param>
  1516. /// <returns></returns>
  1517. public object FindMaxBySql(string strSql, DbParameter[] parameters)
  1518. {
  1519. return DbHelper.ExecuteScalar(CommandType.Text, strSql, parameters);
  1520. }
  1521. #endregion
  1522. public DataTable FindTablePageBySql_OtherTemp(string strSql, string TempName, string Droptable, string connectstr, DbParameter[] parameters, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount)
  1523. {
  1524. return OtherSqlServerHelper.GetPageTable_EXISTSTemp(strSql, TempName, Droptable, connectstr, parameters, orderField, orderType, pageIndex, pageSize, ref recordCount);
  1525. }
  1526. /// <summary>
  1527. /// 查询数据列表、返回 DataTable
  1528. /// </summary>
  1529. /// <param name="strSql">Sql语句</param>
  1530. /// <param name="parameters">sql语句对应参数</param>
  1531. /// <param name="orderField">排序字段</param>
  1532. /// <param name="orderType">排序类型</param>
  1533. /// <param name="pageIndex">当前页</param>
  1534. /// <param name="pageSize">页大小</param>
  1535. /// <param name="recordCount">返回查询条数</param>
  1536. /// <returns></returns>
  1537. public DataTable FindTablePageBySql_Other(string strSql, string connectstr, DbParameter[] parameters, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount)
  1538. {
  1539. return OtherSqlServerHelper.GetPageTable(strSql, connectstr, parameters, orderField, orderType, pageIndex, pageSize, ref recordCount);
  1540. }
  1541. public DataTable GetDataTableBySql_Other(string strSql, string connectstr, params SqlParameter[] spArr)
  1542. {
  1543. return OtherSqlServerHelper.GetDataTableBySql(strSql, connectstr, spArr);
  1544. }
  1545. }
  1546. }