DataBase.cs
上传用户:chizxy
上传日期:2014-11-29
资源大小:407k
文件大小:9k
源码类别:

其他行业

开发平台:

C#

  1. using System;
  2. using System.Data;
  3. using System.Data.SqlClient;
  4. using System.Windows.Forms;
  5. using System.IO;
  6. namespace MKIms3
  7. {
  8. /// <summary>
  9. /// DataBase 的摘要说明。
  10. /// </summary>
  11. public class DataBase
  12. {
  13. private SqlConnection conn;
  14. //private SqlCommand mycmd;
  15. // private SqlDataAdapter da;
  16. /// <summary>
  17. /// 构造函数
  18. /// </summary>
  19. public DataBase()
  20. {
  21. //
  22. // TODO: 在此处添加构造函数逻辑
  23. //
  24. this.conn = CreateConn();
  25. }
  26. /// <summary>
  27. /// 通过读取系统目录下的授权文件经过解密得到包含连接信息的数组
  28. /// </summary>
  29. /// <returns>包含连接信息的数组</returns>
  30. private string[] RetrunConn()
  31. {
  32. string input=null;
  33. if (!File.Exists(Application.StartupPath+"\授权文件.dat")) 
  34. {
  35. MessageBox.Show("请确认您正确设置了授权文件","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
  36. return null;
  37. }
  38. else
  39. {
  40. try
  41. {
  42. StreamReader sr = File.OpenText(Application.StartupPath+"\授权文件.dat");
  43. input=sr.ReadLine();
  44. sr.Close();
  45. string[] conAry = code_en_de.get_char(input);
  46. return conAry;
  47. }
  48. catch(Exception e)
  49. {
  50. MessageBox.Show("系统错误!nn错误信息:"+e.Message.ToString()+"","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
  51. return null;
  52. }
  53. }
  54. }
  55. /// <summary>
  56. /// 返回SQLSERVER数据库的连接字符串
  57. /// </summary>
  58. /// <param name="conAry">包含连接信息的数组</param>
  59. /// <returns></returns>
  60. private string RSqlConn()
  61. {
  62. string[] conAry =RetrunConn();
  63. if(conAry==null)
  64. {
  65. return null;
  66. }
  67. else
  68. {
  69. string SqlConn = "Data Source="+conAry[0]+";Initial Catalog="+conAry[1]+";User ID="+conAry[2]+";Password="+conAry[3];
  70. return SqlConn;
  71. }
  72. }
  73. /// <summary>
  74. /// 返回工作空间连接字符串
  75. /// </summary>
  76. /// <param name="conAry">包含连接信息的数组</param>
  77. /// <returns>有两个元素的数组,为打开工作空间的两个参数</returns>
  78. public string[] MapConn()
  79. {
  80. string[] conAry = RetrunConn();
  81. if(conAry==null)
  82. {
  83. return null;
  84. }
  85. else
  86. {
  87. string[] WorkSpaceConn = new string[2];
  88. WorkSpaceConn[1] =  "UID ="+conAry[2]+";pwd ="+conAry[3];
  89. WorkSpaceConn[0] = "Provider = SQLOLEDB;Driver = SQL Server;SERVER = "+conAry[0]+";Database ="+conAry[1]+";Caption = 某矿信息管理系统;";//这个是工作空间名
  90. return WorkSpaceConn;
  91. }
  92. }
  93. /// <summary>
  94. /// 建立数据库连接对象
  95. /// </summary>
  96. /// <returns>返回一个数据库连接对象</returns>
  97. private  SqlConnection CreateConn()
  98. {
  99. string constring = RSqlConn();
  100. if(constring==null)
  101. {
  102.                 return null;
  103. }
  104. else
  105. {
  106. SqlConnection myConn = new SqlConnection(constring);
  107. return myConn;
  108. }
  109. }
  110. /// <summary>
  111. /// 建立command对象
  112. /// </summary>
  113. /// <param name="storedProcName">存储过程名称</param>
  114. /// <param name="parameters">参数数组</param>
  115. /// <returns>SqlCommand</returns>
  116. private  SqlCommand BuildQueryCommand(string storedProcName,IDataParameter[] parameters)
  117. {
  118. if(conn!=null)
  119. {
  120. SqlCommand command = new SqlCommand(storedProcName,conn);
  121. command.CommandType = CommandType.StoredProcedure;
  122. foreach(SqlParameter parameter in parameters)
  123. {
  124. command.Parameters.Add(parameter);
  125. }
  126. return command;
  127. }
  128. else
  129. {
  130. return null;
  131. }
  132. }
  133. /// <summary>
  134. /// 建立command对象   重载
  135. /// </summary>
  136. /// <returns>SqlCommand</returns>
  137. private  SqlCommand BuildQueryCommand(string storedProcName)
  138. {
  139. if(conn!=null)
  140. {
  141. SqlCommand command = new SqlCommand(storedProcName,conn);
  142. command.CommandType = CommandType.StoredProcedure;
  143. return command;
  144. }
  145. else
  146. {
  147. return null;
  148. }
  149. }
  150. /// <summary>
  151. /// 返回只读的向前的记录集
  152. /// </summary>
  153. /// <param name="storedProcName">存储过程名称</param>
  154. /// <param name="parameters">存储过程的参数数组</param>
  155. /// <returns>SqlDataReader</returns>
  156. public SqlDataReader RunProcedure(string storedProcName,IDataParameter[] parameters)
  157. {
  158. //SqlConnection conn = CreateConn();
  159. if(conn!=null)
  160. {
  161. SqlDataReader returnReader; //= new SqlDataReader();
  162. try
  163. {
  164. conn.Open();
  165. SqlCommand command = BuildQueryCommand(storedProcName,parameters);
  166. command.CommandType = CommandType.StoredProcedure;
  167. returnReader = command.ExecuteReader(CommandBehavior.CloseConnection);
  168. return returnReader;
  169. }
  170. catch(SqlException e)
  171. {
  172. MessageBox.Show("系统错误!nn错误信息:"+e.Message.ToString()+"","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
  173. conn.Close();
  174. return null;
  175. }
  176. }
  177. else
  178. {
  179. return null;
  180. }
  181. }
  182. /// <summary>
  183. /// 返回只读的向前的记录集  重载
  184. /// </summary>
  185. /// <param name="storedProcName">存储过程名</param>
  186. /// <returns>SqlDataReader</returns>
  187. public SqlDataReader RunProcedure(string storedProcName)
  188. {
  189. if(conn!=null)
  190. {
  191. SqlDataReader returnReader;
  192. try
  193. {
  194. conn.Open();
  195. SqlCommand command = BuildQueryCommand(storedProcName);
  196. command.CommandType = CommandType.StoredProcedure;
  197. returnReader = command.ExecuteReader(CommandBehavior.CloseConnection);
  198. return returnReader;
  199. }
  200. catch(SqlException e)
  201. {
  202. MessageBox.Show("系统错误!nn错误信息:"+e.Message.ToString()+"","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
  203. return null;
  204. }
  205. }
  206. else
  207. {
  208. return null;
  209. }
  210. }
  211. /// <summary>
  212. /// 返回一个dataset用来更新数据
  213. /// </summary>
  214. /// <param name="storedProcName">存储过程名</param>
  215. /// <param name="parameters">存储过程参数</param>
  216. /// <returns>dataset</returns>
  217. public DataSet RunProcedure(string storedProcName,IDataParameter[] parameters,string tablename)
  218. {
  219. DataSet dataset = new DataSet();
  220. SqlDataAdapter SqlDA = new SqlDataAdapter();
  221. try
  222. {
  223. SqlDA.SelectCommand = BuildQueryCommand(storedProcName,parameters);
  224. SqlDA.Fill(dataset,tablename);
  225. return dataset;
  226. }
  227. catch(SqlException e)
  228. {
  229. MessageBox.Show("系统错误!nn错误信息:"+e.Message.ToString()+"","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
  230. return null;
  231. }
  232. finally
  233. {
  234. conn.Close();
  235. }
  236. }
  237. /// <summary>
  238. /// 返回一个dataset用来更新数据  重载
  239. /// </summary>
  240. /// <param name="storedProcName">存储过程名</param>
  241. /// <returns>dataset</returns>
  242. public DataSet RunProcedure(string storedProcName,string tablename)
  243. {
  244. DataSet dataset = new DataSet();
  245. SqlDataAdapter SqlDA = new SqlDataAdapter();
  246. try
  247. {
  248. SqlDA.SelectCommand = BuildQueryCommand(storedProcName);
  249. SqlDA.Fill(dataset,tablename);
  250. return dataset;
  251. }
  252. catch(SqlException e)
  253. {
  254. MessageBox.Show("系统错误!nn错误信息:"+e.Message.ToString()+"","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
  255. return null;
  256. }
  257. finally
  258. {
  259. conn.Close();
  260. }
  261. }
  262. /// <summary>
  263. /// 执行无返回值的存储过程
  264. /// </summary>
  265. /// <param name="storedProcName">存储过程名</param>
  266. /// <param name="parameters">存储过程的参数</param>
  267. /// <returns>执行是否成功</returns>
  268. public bool RunProcedure_Nr(string storedProcName,IDataParameter[] parameters)
  269. {
  270. try
  271. {
  272. conn.Open();
  273. SqlCommand mycommand = new SqlCommand();
  274. mycommand = BuildQueryCommand(storedProcName,parameters);
  275. mycommand.ExecuteNonQuery();
  276. return true;
  277. }
  278. catch(SqlException e)
  279. {
  280. MessageBox.Show("系统错误!nn错误信息:"+e.Message.ToString()+"","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
  281. return false;
  282. }
  283. finally
  284. {
  285. conn.Close();
  286. }
  287. }
  288. public bool Run_change(string selectaa,DataSet myset,string tablename)
  289. {
  290. // string selectaa = " select  ceng.煤层名称, ceng.止煤深度,  ceng.底板坐标x, ceng.底板坐标y, ceng.底板坐标z, ceng.煤层伪厚, ceng.煤层倾角, ceng.利用厚度,  ceng.顶板岩性, ceng.底板岩性, ceng.钻孔序号, ceng.等级 from 煤层关联钻孔 as ceng where 1>2";
  291. try
  292. {
  293. SqlDataAdapter da = new SqlDataAdapter(selectaa,conn);
  294. SqlCommandBuilder cd = new SqlCommandBuilder(da);
  295. da.Update(myset,tablename);
  296. return true;
  297. }
  298. catch(SqlException e)
  299. {
  300. MessageBox.Show("系统错误!nn错误信息:"+e.Message.ToString()+"","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
  301. return false;
  302. }
  303. finally
  304. {
  305. conn.Close();
  306. }
  307. }
  308. // public DataSet get_DataSet(string select,string tablename)
  309. // {
  310. // //mycmd = new SqlCommand(select,this.conn);
  311. // da = new SqlDataAdapter(select,conn);
  312. // DataSet myset = new DataSet();
  313. // da.Fill(myset,tablename);
  314. // return myset;
  315. // }
  316. //
  317. // public bool update_DataSet(DataSet myset,string tablename)
  318. // {
  319. // try
  320. // {
  321. // //SqlDataAdapter da = new SqlDataAdapter(mycmd,conn);
  322. // SqlCommandBuilder cb = new SqlCommandBuilder(da);
  323. // da.Update(myset,tablename);
  324. // return true;
  325. // }
  326. // catch(SqlException e)
  327. // {
  328. // MessageBox.Show("系统错误!nn错误信息:"+e.Message.ToString()+"","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
  329. // return false;
  330. //
  331. // }
  332. // finally
  333. // {
  334. // conn.Close();
  335. // }
  336. //
  337. // }
  338. }
  339. }