clsDataBaseRW.cs 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using MySql.Data.MySqlClient;
  7. using System.Runtime.InteropServices;
  8. using System.Data.OleDb;
  9. using System.IO;
  10. using System.Web;
  11. using System.Data;
  12. namespace HNWD.Pregrant.DataAccess
  13. {
  14. public class clsDataBaseRW
  15. {
  16. private String DHCPINIFIlE = "";//'保存DHCP服务器的INI文件路径
  17. private String strDataBaseServerName = "";//'数据库的IP地址,若为空表示本机IP
  18. private String strDataBaseServerUserName = "";//'数据库连接用户名
  19. private String strDataBaseServerPassword = ""; //数据库连接密码
  20. // ''' 声明从INI配置文件中获取类型为String的配置项的值的系统函数
  21. [DllImport("kernel32.dll",SetLastError = true, EntryPoint = "GetPrivateProfileString")]
  22.    private extern static Int32 GetPrivateProfileString(string lpAppName ,string lpKeyName ,String nDefault , string lpFileName);
  23. /// ''' 声明从INI配置文件中获取类型为string的配置项的值的系统函数
  24. [DllImport("kernel32.dll", SetLastError = true, EntryPoint = "GetPrivateProfileString")]
  25. private extern static Int32 GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, string lpReturnedString, int nSize, string lpFileName);
  26. /// '''声明向INI配置文件中写入类型为string的配置项的值的系统函数
  27. [DllImport("kernel32.dll", SetLastError = true, EntryPoint = "WritePrivateProfileString")]
  28. private extern static Int32 WritePrivateProfileString(string lpAppName, string lpKeyName, string lpString, string lpFileName);
  29. //'''<summary>
  30. // '''INI文件路径名称
  31. // '''</summary>
  32. private string strIniFile = ""; // 'InI文件的路径名称
  33. private OleDbConnection DBconn ;
  34. private bool InitFlag = false;
  35. private Int32 GetStringFromINI(string sectionName, string keyName, String defaultValue, string iniPath)
  36. {
  37. return GetPrivateProfileString(sectionName, keyName, defaultValue, iniPath);
  38. }
  39. private string GetStrFromINI(string sectionName, string keyName, string defaultValue, string initPath)
  40. {
  41. string buffer = " ".PadLeft(256);
  42. int rc = GetPrivateProfileString(sectionName, keyName, defaultValue, buffer, buffer.Length, initPath);
  43. return buffer.Substring(0, buffer.IndexOf("") - 1);
  44. }
  45. private Int32 WriteStrINI(string sectionName, string keyName, string setValue, string iniPath)
  46. {
  47. int rc = WritePrivateProfileString(sectionName, keyName, setValue, iniPath);
  48. if(rc > 0)
  49. {
  50. rc = 1;
  51. }
  52. return rc;
  53. }
  54. //'===================================================
  55. //'返回DHCP服务器中MAC地址对应的IP地址
  56. public string DHCP_ReadIPAddressByMAC(string strMAC)
  57. {
  58. string Res = "";
  59. strMAC = strMAC.Replace(":", "-");
  60. Res = GetStrFromINI(strMAC.Trim(), "IPADDR", "", DHCPINIFIlE);
  61. return Res;
  62. }
  63. //'设置MACf地址对应的分配IP地址
  64. public void DHCP_WriteIPAddressByMAC(string strMAC , string IPAddress)
  65. {
  66. DHCP_LockFileReadOnly(false);
  67. strMAC = strMAC.Replace(":", "-");
  68. WriteStrINI(strMAC.Trim(), "IPADDR", IPAddress, DHCPINIFIlE);
  69. DHCP_LockFileReadOnly(true);
  70. }
  71. //'设置DHCP模块相关的参数
  72. public void DHCP_WriteDHCPSevCFG(string IPMASK , string GetWay , string DNS , string StartIP , string EndIP)
  73. {
  74. DHCP_LockFileReadOnly(false);
  75. WriteStrINI("General", "SUBNETMASK", IPMASK.Trim(), DHCPINIFIlE);
  76. WriteStrINI("General", "ROUTER_1", GetWay.Trim(), DHCPINIFIlE);
  77. WriteStrINI("General", "DNS_1", DNS.Trim(), DHCPINIFIlE);
  78. WriteStrINI("Settings", "IPPOOL_1", StartIP.Trim() + "-" + EndIP.Split(new char[]{'.'})[3], DHCPINIFIlE);
  79. DHCP_LockFileReadOnly(true);
  80. }
  81. private void DHCP_LockFileReadOnly(bool Action)
  82. {
  83. if(File.Exists(DHCPINIFIlE))
  84. {
  85. if(Action)
  86. {
  87. File.SetAttributes(DHCPINIFIlE, File.GetAttributes(DHCPINIFIlE) | FileAttributes.ReadOnly);
  88. }
  89. else
  90. {
  91. //File.SetAttributes(DHCPINIFIlE, File.GetAttributes(DHCPINIFIlE) && (^FileAttributes.ReadOnly));
  92. }
  93. }
  94. }
  95. public void DHCP_CreateIPList()
  96. {
  97. string IPMASK = "";
  98. string GetWay = "";
  99. string DNS = "";
  100. string StartIP = "";
  101. string InstallAsService = "";
  102. UInt32 i = 0;
  103. IPMASK = GetStrFromINI("General", "SUBNETMASK", "255.255.255.0", DHCPINIFIlE);
  104. GetWay = GetStrFromINI("General", "ROUTER_1", "192.168.1.1", DHCPINIFIlE);
  105. DNS = GetStrFromINI("General", "DNS_1", "192.168.1.1", DHCPINIFIlE);
  106. StartIP = GetStrFromINI("Settings", "IPPOOL_1", "192.168.1.50 - 250", DHCPINIFIlE);
  107. InstallAsService = GetStrFromINI("Settings", "InstallAsService", "2", DHCPINIFIlE);
  108. //'================================================================================
  109. if(File.Exists(DHCPINIFIlE))
  110. {
  111. File.Copy(DHCPINIFIlE, DHCPINIFIlE + string.Format(System.DateTime.Now.ToString("yyyyMMDDHHmmss")));
  112. DHCP_LockFileReadOnly(false);
  113. File.Delete(DHCPINIFIlE);
  114. }
  115. WriteStrINI("General", "SUBNETMASK", IPMASK.Trim(), DHCPINIFIlE);
  116. WriteStrINI("General", "ROUTER_1", GetWay.Trim(), DHCPINIFIlE);
  117. WriteStrINI("General", "DNS_1", DNS.Trim(), DHCPINIFIlE);
  118. WriteStrINI("Settings", "IPPOOL_1", StartIP.Trim(), DHCPINIFIlE);
  119. WriteStrINI("Settings", "InstallAsService", InstallAsService.Trim(), DHCPINIFIlE);
  120. //'================================================================================
  121. DataBaseInit();
  122. try
  123. {
  124. OleDbCommand SqlCmd = new OleDbCommand("", DBconn);
  125. SqlCmd.CommandText = "select [DEVICE_ETH_MAC],[DEVICE_ETH_IP] from [WD_DeviceInfo]";
  126. OleDbDataReader sdr = SqlCmd.ExecuteReader();
  127. while( sdr.Read())
  128. {
  129. if(sdr.GetValue(0) != "" && sdr.GetValue(1) != "")
  130. {
  131. DHCP_WriteIPAddressByMAC(sdr.GetValue(0).ToString(), sdr.GetValue(1).ToString());
  132. }
  133. }
  134. sdr.Close();
  135. }catch(Exception ex)
  136. {
  137. }
  138. DHCP_LockFileReadOnly(true);
  139. //'================================================================================
  140. }
  141. public clsDataBaseRW(string webPath , bool InitFlag = false)
  142. {
  143. try{
  144. this.DHCPINIFIlE = webPath + @"\DHCP\dhcpsrv.ini";
  145. this.strDataBaseServerName = GetStrFromINI("DataBaseServer", "IPAddress", "", webPath + @"\Bin\Config.ini");
  146. this.strDataBaseServerUserName = GetStrFromINI("DataBaseServer", "UserName", "", webPath + @"\Bin\Config.ini");
  147. this.strDataBaseServerPassword = GetStrFromINI("DataBaseServer", "Password", "", webPath + @"\Bin\Config.ini");
  148. if(strDataBaseServerName =="")
  149. {
  150. WriteStrINI("DataBaseServer", "IPAddress", "127.0.0.1", webPath + @"\Bin\Config.ini");
  151. strDataBaseServerName = "127.0.0.1";
  152. }
  153. if(strDataBaseServerUserName == "")
  154. {
  155. WriteStrINI("DataBaseServer", "UserName", "sa", webPath + @"\Bin\Config.ini");
  156. strDataBaseServerUserName = "sa";
  157. }
  158. if(strDataBaseServerPassword == "")
  159. {
  160. WriteStrINI("DataBaseServer", "Password", "Wutonghai113", webPath + @"\Bin\Config.ini");
  161. strDataBaseServerPassword = "Wutonghai113";
  162. }
  163. }
  164. catch(Exception ex)
  165. {
  166. }
  167. if(strDataBaseServerName == "")
  168. {
  169. strDataBaseServerName = "127.0.0.1";
  170. }
  171. if(strDataBaseServerUserName == "")
  172. {
  173. strDataBaseServerUserName = "sa";
  174. }
  175. if(strDataBaseServerPassword == "")
  176. {
  177. strDataBaseServerPassword = "Wutonghai113";
  178. }
  179. if(InitFlag)
  180. {
  181. DataBaseInit();
  182. }
  183. }
  184. //'''===================================================
  185. //''' <summary>
  186. //'''
  187. //''' </summary>
  188. //''' <remarks></remarks>
  189. public clsDataBaseRW(System.Web.UI.Page Host , bool InitFlag = false)
  190. {
  191. try
  192. {
  193. if(Host != null)
  194. {
  195. DHCPINIFIlE = Host.MapPath(HttpContext.Current.Request.ApplicationPath.ToString()) + @"\DHCP\dhcpsrv.ini";
  196. strDataBaseServerName = GetStrFromINI("DataBaseServer", "IPAddress", "", Host.MapPath(HttpContext.Current.Request.ApplicationPath.ToString()) +@"\Bin\Config.ini");
  197. strDataBaseServerUserName = GetStrFromINI("DataBaseServer", "UserName", "", Host.MapPath(HttpContext.Current.Request.ApplicationPath.ToString()) + @"\Bin\Config.ini");
  198. strDataBaseServerPassword = GetStrFromINI("DataBaseServer", "Password", "", Host.MapPath(HttpContext.Current.Request.ApplicationPath.ToString()) + @"\Bin\Config.ini");
  199. if(strDataBaseServerName == "")
  200. {
  201. WriteStrINI("DataBaseServer", "IPAddress", "127.0.0.1", Host.MapPath(HttpContext.Current.Request.ApplicationPath.ToString()) + @"\Bin\Config.ini");
  202. strDataBaseServerName = "127.0.0.1";
  203. }
  204. if(strDataBaseServerUserName == "")
  205. {
  206. WriteStrINI("DataBaseServer", "UserName", "sa", Host.MapPath(HttpContext.Current.Request.ApplicationPath.ToString()) + @"\Bin\Config.ini");
  207. strDataBaseServerUserName = "sa";
  208. }
  209. if(strDataBaseServerPassword == "")
  210. {
  211. WriteStrINI("DataBaseServer", "Password", "Wutonghai113", Host.MapPath(HttpContext.Current.Request.ApplicationPath.ToString()) + @"\Bin\Config.ini");
  212. strDataBaseServerPassword = "Wutonghai113";
  213. }
  214. }
  215. }
  216. catch(Exception ex)
  217. {
  218. }
  219. if(strDataBaseServerName == "")
  220. {
  221. strDataBaseServerName = "127.0.0.1";
  222. }
  223. if(strDataBaseServerUserName == "")
  224. {
  225. strDataBaseServerUserName = "sa";
  226. }
  227. if(strDataBaseServerPassword == "")
  228. {
  229. strDataBaseServerPassword = "Wutonghai113";
  230. }
  231. if(InitFlag)
  232. {
  233. DataBaseInit();
  234. }
  235. }
  236. //'''===================================================
  237. //''' <summary>
  238. //''' 获得网卡MAC
  239. //''' </summary>
  240. //''' <returns></returns>
  241. //public string GetNetMACAdd()
  242. //{
  243. // string strMac = "";
  244. // ManagementClass myMac = new ManagementClass("Win32_NetworkAdapterConfiguration");
  245. // ManagementObjectCollection myMacConnection = new myMac.GetInstances();
  246. // foreach( ManagementObject myObject in myMacConnection)
  247. // {
  248. // if(string.IsNullOrEmpty(myObject("MacAddress")))
  249. // {
  250. // ///'MAC不为空,取第一个MAC
  251. // }
  252. // else
  253. // {
  254. // strMac = myObject("MacAddress");
  255. // break;
  256. // }
  257. // }
  258. // return strMac;
  259. //}
  260. //Public Function GetNetMACAdd() As String
  261. // Dim strMac As String = ""
  262. // Dim myMac As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
  263. // Dim myMacConnection As ManagementObjectCollection = myMac.GetInstances()
  264. // For Each myObject As ManagementObject In myMacConnection
  265. // If IsNothing(myObject("MacAddress")) = False Then 'MAC不为空,取第一个MAC
  266. // strMac = myObject("MacAddress")
  267. // Exit For
  268. // End If
  269. // Next
  270. // Return strMac
  271. //End Function
  272. //'''===================================================
  273. //'''<summary>
  274. //'''打开登录数据库
  275. //'''</summary>
  276. public bool DataBaseInit()
  277. {
  278. if(this.InitFlag)
  279. {
  280. return true;
  281. }
  282. string DBConnectString = "Provider=SQLOLEDB;Data Source=" + strDataBaseServerName + ",1433;Initial Catalog=WD_IPCALL_PREGNANT;User ID=" + strDataBaseServerUserName + ";Password=" + strDataBaseServerPassword + ";MultipleActiveResultSets=true;";
  283. try{
  284. DBconn.ConnectionString = DBConnectString;
  285. DBconn.Open();
  286. if(DBconn.State == ConnectionState.Open)
  287. {
  288. this.InitFlag = true;
  289. }
  290. }
  291. catch(Exception ex)
  292. {
  293. }
  294. return this.InitFlag;
  295. }
  296. //'''===================================================
  297. //'''<summary>
  298. //'''关闭注销数据库
  299. //'''</summary>
  300. public bool DataBaseClose()
  301. {
  302. if(this.InitFlag)
  303. {
  304. DBconn.Close();
  305. this.InitFlag = false;
  306. }
  307. return true;
  308. }
  309. //''' <summary>
  310. //'''
  311. //''' </summary>
  312. //''' <param name="strSql"></param>
  313. //''' <param name="n"></param>
  314. //''' <returns></returns>
  315. //''' <remarks></remarks>
  316. public bool DataBaseCmd(String strSql , Int32 n )
  317. {
  318. int LIntCnt ;
  319. bool res = false;
  320. if(DataBaseInit())
  321. {
  322. try
  323. {
  324. OleDbCommand SqlCmd = new OleDbCommand("",DBconn);
  325. SqlCmd.CommandText = strSql; //' "delete from " + TableName + " where [ID]=" + RowID.ToString()
  326. if(n>=0)
  327. {
  328. n = Convert.ToInt32(SqlCmd.ExecuteScalar());
  329. LIntCnt = n;
  330. }
  331. else
  332. {
  333. LIntCnt = SqlCmd.ExecuteNonQuery();
  334. }
  335. if (LIntCnt > 0)
  336. {
  337. res = true;
  338. }
  339. }
  340. catch(Exception ex)
  341. {
  342. }
  343. }
  344. return res;
  345. }
  346. //'''===================================================
  347. //'''<summary>
  348. //'''搜索数据库中的指定表格指定字段值的记录,并从其中读取指定某条记录
  349. //'''</summary>
  350. //'''<param name="strSql">SQL查找语句</param>
  351. //'''<param name="RdLine">读取结果中的第几条记录</param>
  352. //'''<param name="Result">读缓存</param>
  353. public bool DataBaseRead(string strSql ,UInt32 RdLine , ref string[] Result , bool FiterFlag = false, string SpitStr = ":" )
  354. {
  355. Result = new string[1];
  356. bool res = false;
  357. if(DataBaseInit())
  358. {
  359. try
  360. {
  361. OleDbCommand SqlCmd = new OleDbCommand("", DBconn);
  362. SqlCmd.CommandText = strSql;
  363. OleDbDataReader sdr = SqlCmd.ExecuteReader();
  364. UInt32 CurLine = 1;
  365. while(sdr.Read())
  366. {
  367. if(RdLine == CurLine )
  368. {
  369. for(int j = 0;j<sdr.FieldCount - 1;j++)
  370. {
  371. if(!FiterFlag)
  372. {
  373. Result[j] = "\"" + sdr.GetName(j).ToString() + "\"" + SpitStr + "\"" + sdr.GetValue(j).ToString() + "\"";
  374. }
  375. else
  376. {
  377. Result[j] = sdr.GetName(j).ToString() + SpitStr + sdr.GetValue(j).ToString();
  378. }
  379. }
  380. res = true;
  381. break;
  382. }
  383. CurLine ++;
  384. }
  385. sdr.Close();
  386. }
  387. catch(Exception ex)
  388. {
  389. }
  390. }
  391. return res;
  392. }
  393. // Try
  394. // Dim SqlCmd As OleDbCommand = New OleDbCommand("", DBconn)
  395. // SqlCmd.CommandText = strSql
  396. // Dim sdr As OleDbDataReader = SqlCmd.ExecuteReader()
  397. // Dim CurLine As UString = 1
  398. // While sdr.Read = True
  399. // If CurLine = RdLine Then
  400. // For i = 0 To sdr.FieldCount - 1
  401. // If FiterFlag = False Then
  402. // Result(i) = """" + sdr.GetName(i).ToString + """" + SpitStr + """" + sdr.GetValue(i).ToString() + """"
  403. // Else
  404. // Result(i) = sdr.GetName(i).ToString + SpitStr + sdr.GetValue(i).ToString()
  405. // End If
  406. // Next
  407. // res = True
  408. // ReDim Preserve Result(sdr.FieldCount - 1)
  409. // Exit While
  410. // End If
  411. // CurLine += 1
  412. // End While
  413. // sdr.Close()
  414. // Catch ex As Exception
  415. // End Try
  416. //End If
  417. //Return res
  418. // }
  419. //Public Function DataBaseRead(ByVal strSql As String, ByVal RdLine As UString, ByRef Result() As String, Optional FiterFlag As Boolean = False, Optional SpitStr As String = ":") As Boolean
  420. // Dim res As Boolean = False
  421. // Dim i As Stringeger
  422. // '=======================
  423. // If DataBaseInit() = True Then
  424. // Try
  425. // Dim SqlCmd As OleDbCommand = New OleDbCommand("", DBconn)
  426. // SqlCmd.CommandText = strSql
  427. // Dim sdr As OleDbDataReader = SqlCmd.ExecuteReader()
  428. // Dim CurLine As UString = 1
  429. // While sdr.Read = True
  430. // If CurLine = RdLine Then
  431. // For i = 0 To sdr.FieldCount - 1
  432. // If FiterFlag = False Then
  433. // Result(i) = """" + sdr.GetName(i).ToString + """" + SpitStr + """" + sdr.GetValue(i).ToString() + """"
  434. // Else
  435. // Result(i) = sdr.GetName(i).ToString + SpitStr + sdr.GetValue(i).ToString()
  436. // End If
  437. // Next
  438. // res = True
  439. // ReDim Preserve Result(sdr.FieldCount - 1)
  440. // Exit While
  441. // End If
  442. // CurLine += 1
  443. // End While
  444. // sdr.Close()
  445. // Catch ex As Exception
  446. // End Try
  447. // End If
  448. // Return res
  449. //End Function
  450. public bool DataBaseLog(String LogType , string LogSource , string Logcontent )
  451. {
  452. bool Res = false;
  453. try
  454. {
  455. Res = DataBaseCmd("INSERT StringO WD_SysLogInfo([LOG_TYPE],[LOG_SOURCE],[LOG_CONTENT],[LOG_DATETIME]) VALUES ('" + LogType.ToString().Trim() + "','" + LogSource.Trim() + "','" + Logcontent.Trim() + "','" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "')",-1);
  456. }
  457. catch(Exception ex)
  458. {
  459. }
  460. return Res;
  461. }
  462. // public bool DataBaseReadMul(String strSql , String[][] Result , bool FiterFlag = false , String SpitStr = ":")
  463. // {
  464. // bool Res = false;
  465. // String i;
  466. // UString j ;
  467. // if(DataBaseInit())
  468. // {
  469. // try
  470. // {
  471. // OleDbCommand SqlCmd = new OleDbCommand("",DBconn);
  472. // SqlCmd.CommandText = strSql;
  473. // OleDbDataReader sdr = SqlCmd.ExecuteReader();
  474. // i = 0;
  475. // while(sdr.Read())
  476. // {
  477. // if(i>)
  478. // }
  479. // }
  480. // }
  481. // }
  482. //Public Function DataBaseReadMul(ByVal strSql As String, ByRef Result(,) As String, Optional FiterFlag As Boolean = False, Optional SpitStr As String = ":") As Boolean
  483. // Dim Res As Boolean = False
  484. // Dim i As Stringeger
  485. // Dim j As UString
  486. // '=======================
  487. // If DataBaseInit() = True Then
  488. // Try
  489. // Dim SqlCmd As OleDbCommand = New OleDbCommand("", DBconn)
  490. // SqlCmd.CommandText = strSql
  491. // Dim sdr As OleDbDataReader = SqlCmd.ExecuteReader()
  492. // i = 0
  493. // While sdr.Read = True
  494. // If i > Result.GetUpperBound(1) Then ReDim Preserve Result(Result.GetUpperBound(0), i)
  495. // For j = 0 To sdr.FieldCount - 1
  496. // If FiterFlag = False Then
  497. // Result(j, i) = """" + sdr.GetName(j).ToString + """" + SpitStr + """" + sdr.GetValue(j).ToString() + """"
  498. // Else
  499. // Result(j, i) = sdr.GetName(j).ToString + SpitStr + sdr.GetValue(j).ToString()
  500. // End If
  501. // Next
  502. // i += 1
  503. // End While
  504. // sdr.Close()
  505. // Res = True
  506. // Catch ex As Exception
  507. // End Try
  508. // End If
  509. // Return Res
  510. //End Function
  511. }
  512. }