DataHelper.cs 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. using Oracle.DataAccess.Client;
  2. using System.Configuration;
  3. using System.Data;
  4. using System;
  5. namespace 优软MES.DataOperate
  6. {
  7. class DataHelper
  8. {
  9. public static readonly string ConnectionStrings = ConfigurationSettings.AppSettings["DatabaseConnection"];
  10. OracleCommand command = null;
  11. OracleConnection connection = new OracleConnection(ConnectionStrings);
  12. public DataHelper() {
  13. connection.Open();
  14. }
  15. /// <summary>
  16. /// 根据表名获取该表字段数据类型
  17. /// </summary>
  18. public DataTable getColumnDataType(string TableName) {
  19. DataTable dt = new DataTable();
  20. command = new OracleCommand("select Column_Name,Data_Type from cols where TABLE_name=upper('"+TableName+"')", connection);
  21. OracleDataAdapter ad = new OracleDataAdapter(command);
  22. ad.Fill(dt);
  23. return dt;
  24. }
  25. /// <summary>
  26. /// 获取第一行第一列的信息
  27. /// </summary>
  28. public object getFieldDataByCondition(string TableName,string Field,string Condition) {
  29. DataTable dt = new DataTable();
  30. string sql = "select "+Field+" from " +TableName +" where "+Condition;
  31. command = new OracleCommand();
  32. command.CommandText = sql;
  33. OracleDataAdapter ad = new OracleDataAdapter();
  34. ad.SelectCommand = command;
  35. ad.Fill(dt);
  36. return dt.Rows[0][0];
  37. }
  38. /// <summary>
  39. /// 获取指定表的数量
  40. /// </summary>
  41. /// <returns></returns>
  42. public int getRowCount(string TableName) {
  43. DataTable dt = new DataTable();
  44. string sql = "select count(1) from "+TableName;
  45. command = new OracleCommand(sql, connection);
  46. OracleDataAdapter ad = new OracleDataAdapter(command);
  47. ad.Fill(dt);
  48. int count =int.Parse(dt.Rows[0][0].ToString());
  49. return count;
  50. }
  51. /// <summary>
  52. /// 通过表名和获取单行的记录
  53. /// </summary>
  54. public DataTable getFieldsDataByCondition(string TableName,string[] Fields,string Condition) {
  55. DataTable dt = new DataTable();
  56. string sql = "select " ;
  57. sql += AddField(Fields);
  58. sql += " from " + TableName + " where " + Condition +"and rownum=1";
  59. Console.Write(sql);
  60. command = new OracleCommand(sql, connection);
  61. OracleDataAdapter ad = new OracleDataAdapter(command);
  62. ad.Fill(dt);
  63. return dt;
  64. }
  65. /// <summary>
  66. /// 将DataTable导入到指定的表中
  67. /// </summary>
  68. /// <param name="DataTable"></param>
  69. /// <param name="TableName"></param>
  70. public void InsertDataTable(DataTable DataTable ,string TableName) {
  71. for (int i = 0; i < DataTable.Rows.Count; i++) {
  72. for (int j = 0; j < DataTable.Columns.Count; j++) {
  73. }
  74. }
  75. }
  76. /// <summary>
  77. /// 通过表名,字段获取DataTable类型的分页数据
  78. /// </summary>
  79. // SELECT * FROM (SELECT RN A.*, ROWNUM FROM (SELECT* FROM datalist) A WHERE ROWNUM <= 50) WHERE RN >= 21
  80. public DataTable getFieldsDatasByPageing(string TableName,string[] Fields,int CurrentPage,int PageSize) {
  81. string sql = "select * from (select ROWNUM RN,A.* from (select ";
  82. DataTable dt = new DataTable();
  83. sql += AddField(Fields);
  84. sql += " from " + TableName +") A where ROWNUM <="+CurrentPage*PageSize+") where RN>"+ (CurrentPage - 1)* PageSize;
  85. command = new OracleCommand(sql, connection);
  86. OracleDataAdapter ad = new OracleDataAdapter(command);
  87. ad.Fill(dt);
  88. return dt;
  89. }
  90. /// <summary>
  91. /// 通过表名,字段和条件获取DataTable类型的数据
  92. /// </summary>
  93. public DataTable getFieldsDatasByCondition(string TableName, string[] Fields, string Condition)
  94. {
  95. DataTable dt = new DataTable();
  96. string sql = "select ";
  97. sql += AddField(Fields);
  98. sql += " from " + TableName + "where " + Condition;
  99. command = new OracleCommand(sql, connection);
  100. OracleDataAdapter ad = new OracleDataAdapter(command);
  101. ad.Fill(dt);
  102. return dt;
  103. }
  104. /// <summary>
  105. /// 通过表名,字段获取DataTable类型的数据
  106. /// </summary>
  107. public DataTable getFieldsDatas(string TableName, string[] Fields)
  108. {
  109. DataTable dt = new DataTable();
  110. string sql = "select ";
  111. sql += AddField(Fields);
  112. sql += " from " + TableName;
  113. command = new OracleCommand(sql, connection);
  114. OracleDataAdapter ad = new OracleDataAdapter(command);
  115. ad.Fill(dt);
  116. return dt;
  117. }
  118. /// <summary>
  119. /// 根据指定条件更新Table
  120. /// </summary>
  121. /// <param name="TableName"></param>
  122. /// <param name="UpdateStatement"></param>
  123. /// <param name="Condition"></param>
  124. public void UpDateTableByCondition(string TableName,string UpdateStatement,string Condition) {
  125. }
  126. /// <summary>
  127. /// 执行SQL的方法获取数据
  128. /// </summary>
  129. /// <param name="SQL"></param>
  130. /// <returns></returns>
  131. public DataTable ExecuteSql(string SQL) {
  132. DataTable dt = new DataTable();
  133. command = new OracleCommand(SQL, connection);
  134. OracleDataAdapter ad = new OracleDataAdapter(command);
  135. ad.Fill(dt);
  136. return dt;
  137. }
  138. public string AddField(string[] Fields) {
  139. string sql = " " ;
  140. foreach (string field in Fields)
  141. {
  142. if (!field.Equals(Fields[Fields.Length - 1]))
  143. {
  144. sql += field + ",";
  145. }
  146. else
  147. {
  148. sql += field;
  149. }
  150. }
  151. return sql;
  152. }
  153. }
  154. }