using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Runtime.InteropServices;
using System.Data.OleDb;
using System.IO;
using System.Web;
using System.Data;
namespace HNWD.Pregrant.DataAccess
{
public class clsDataBaseRW
{
private String DHCPINIFIlE = "";//'保存DHCP服务器的INI文件路径
private String strDataBaseServerName = "";//'数据库的IP地址,若为空表示本机IP
private String strDataBaseServerUserName = "";//'数据库连接用户名
private String strDataBaseServerPassword = ""; //数据库连接密码
// ''' 声明从INI配置文件中获取类型为String的配置项的值的系统函数
[DllImport("kernel32.dll",SetLastError = true, EntryPoint = "GetPrivateProfileString")]
private extern static Int32 GetPrivateProfileString(string lpAppName ,string lpKeyName ,String nDefault , string lpFileName);
/// ''' 声明从INI配置文件中获取类型为string的配置项的值的系统函数
[DllImport("kernel32.dll", SetLastError = true, EntryPoint = "GetPrivateProfileString")]
private extern static Int32 GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, string lpReturnedString, int nSize, string lpFileName);
/// '''声明向INI配置文件中写入类型为string的配置项的值的系统函数
[DllImport("kernel32.dll", SetLastError = true, EntryPoint = "WritePrivateProfileString")]
private extern static Int32 WritePrivateProfileString(string lpAppName, string lpKeyName, string lpString, string lpFileName);
//'''
// '''INI文件路径名称
// '''
private string strIniFile = ""; // 'InI文件的路径名称
private OleDbConnection DBconn ;
private bool InitFlag = false;
private Int32 GetStringFromINI(string sectionName, string keyName, String defaultValue, string iniPath)
{
return GetPrivateProfileString(sectionName, keyName, defaultValue, iniPath);
}
private string GetStrFromINI(string sectionName, string keyName, string defaultValue, string initPath)
{
string buffer = " ".PadLeft(256);
int rc = GetPrivateProfileString(sectionName, keyName, defaultValue, buffer, buffer.Length, initPath);
return buffer.Substring(0, buffer.IndexOf("") - 1);
}
private Int32 WriteStrINI(string sectionName, string keyName, string setValue, string iniPath)
{
int rc = WritePrivateProfileString(sectionName, keyName, setValue, iniPath);
if(rc > 0)
{
rc = 1;
}
return rc;
}
//'===================================================
//'返回DHCP服务器中MAC地址对应的IP地址
public string DHCP_ReadIPAddressByMAC(string strMAC)
{
string Res = "";
strMAC = strMAC.Replace(":", "-");
Res = GetStrFromINI(strMAC.Trim(), "IPADDR", "", DHCPINIFIlE);
return Res;
}
//'设置MACf地址对应的分配IP地址
public void DHCP_WriteIPAddressByMAC(string strMAC , string IPAddress)
{
DHCP_LockFileReadOnly(false);
strMAC = strMAC.Replace(":", "-");
WriteStrINI(strMAC.Trim(), "IPADDR", IPAddress, DHCPINIFIlE);
DHCP_LockFileReadOnly(true);
}
//'设置DHCP模块相关的参数
public void DHCP_WriteDHCPSevCFG(string IPMASK , string GetWay , string DNS , string StartIP , string EndIP)
{
DHCP_LockFileReadOnly(false);
WriteStrINI("General", "SUBNETMASK", IPMASK.Trim(), DHCPINIFIlE);
WriteStrINI("General", "ROUTER_1", GetWay.Trim(), DHCPINIFIlE);
WriteStrINI("General", "DNS_1", DNS.Trim(), DHCPINIFIlE);
WriteStrINI("Settings", "IPPOOL_1", StartIP.Trim() + "-" + EndIP.Split(new char[]{'.'})[3], DHCPINIFIlE);
DHCP_LockFileReadOnly(true);
}
private void DHCP_LockFileReadOnly(bool Action)
{
if(File.Exists(DHCPINIFIlE))
{
if(Action)
{
File.SetAttributes(DHCPINIFIlE, File.GetAttributes(DHCPINIFIlE) | FileAttributes.ReadOnly);
}
else
{
//File.SetAttributes(DHCPINIFIlE, File.GetAttributes(DHCPINIFIlE) && (^FileAttributes.ReadOnly));
}
}
}
public void DHCP_CreateIPList()
{
string IPMASK = "";
string GetWay = "";
string DNS = "";
string StartIP = "";
string InstallAsService = "";
UInt32 i = 0;
IPMASK = GetStrFromINI("General", "SUBNETMASK", "255.255.255.0", DHCPINIFIlE);
GetWay = GetStrFromINI("General", "ROUTER_1", "192.168.1.1", DHCPINIFIlE);
DNS = GetStrFromINI("General", "DNS_1", "192.168.1.1", DHCPINIFIlE);
StartIP = GetStrFromINI("Settings", "IPPOOL_1", "192.168.1.50 - 250", DHCPINIFIlE);
InstallAsService = GetStrFromINI("Settings", "InstallAsService", "2", DHCPINIFIlE);
//'================================================================================
if(File.Exists(DHCPINIFIlE))
{
File.Copy(DHCPINIFIlE, DHCPINIFIlE + string.Format(System.DateTime.Now.ToString("yyyyMMDDHHmmss")));
DHCP_LockFileReadOnly(false);
File.Delete(DHCPINIFIlE);
}
WriteStrINI("General", "SUBNETMASK", IPMASK.Trim(), DHCPINIFIlE);
WriteStrINI("General", "ROUTER_1", GetWay.Trim(), DHCPINIFIlE);
WriteStrINI("General", "DNS_1", DNS.Trim(), DHCPINIFIlE);
WriteStrINI("Settings", "IPPOOL_1", StartIP.Trim(), DHCPINIFIlE);
WriteStrINI("Settings", "InstallAsService", InstallAsService.Trim(), DHCPINIFIlE);
//'================================================================================
DataBaseInit();
try
{
OleDbCommand SqlCmd = new OleDbCommand("", DBconn);
SqlCmd.CommandText = "select [DEVICE_ETH_MAC],[DEVICE_ETH_IP] from [WD_DeviceInfo]";
OleDbDataReader sdr = SqlCmd.ExecuteReader();
while( sdr.Read())
{
if(sdr.GetValue(0) != "" && sdr.GetValue(1) != "")
{
DHCP_WriteIPAddressByMAC(sdr.GetValue(0).ToString(), sdr.GetValue(1).ToString());
}
}
sdr.Close();
}catch(Exception ex)
{
}
DHCP_LockFileReadOnly(true);
//'================================================================================
}
public clsDataBaseRW(string webPath , bool InitFlag = false)
{
try{
this.DHCPINIFIlE = webPath + @"\DHCP\dhcpsrv.ini";
this.strDataBaseServerName = GetStrFromINI("DataBaseServer", "IPAddress", "", webPath + @"\Bin\Config.ini");
this.strDataBaseServerUserName = GetStrFromINI("DataBaseServer", "UserName", "", webPath + @"\Bin\Config.ini");
this.strDataBaseServerPassword = GetStrFromINI("DataBaseServer", "Password", "", webPath + @"\Bin\Config.ini");
if(strDataBaseServerName =="")
{
WriteStrINI("DataBaseServer", "IPAddress", "127.0.0.1", webPath + @"\Bin\Config.ini");
strDataBaseServerName = "127.0.0.1";
}
if(strDataBaseServerUserName == "")
{
WriteStrINI("DataBaseServer", "UserName", "sa", webPath + @"\Bin\Config.ini");
strDataBaseServerUserName = "sa";
}
if(strDataBaseServerPassword == "")
{
WriteStrINI("DataBaseServer", "Password", "Wutonghai113", webPath + @"\Bin\Config.ini");
strDataBaseServerPassword = "Wutonghai113";
}
}
catch(Exception ex)
{
}
if(strDataBaseServerName == "")
{
strDataBaseServerName = "127.0.0.1";
}
if(strDataBaseServerUserName == "")
{
strDataBaseServerUserName = "sa";
}
if(strDataBaseServerPassword == "")
{
strDataBaseServerPassword = "Wutonghai113";
}
if(InitFlag)
{
DataBaseInit();
}
}
//'''===================================================
//'''
//'''
//'''
//'''
public clsDataBaseRW(System.Web.UI.Page Host , bool InitFlag = false)
{
try
{
if(Host != null)
{
DHCPINIFIlE = Host.MapPath(HttpContext.Current.Request.ApplicationPath.ToString()) + @"\DHCP\dhcpsrv.ini";
strDataBaseServerName = GetStrFromINI("DataBaseServer", "IPAddress", "", Host.MapPath(HttpContext.Current.Request.ApplicationPath.ToString()) +@"\Bin\Config.ini");
strDataBaseServerUserName = GetStrFromINI("DataBaseServer", "UserName", "", Host.MapPath(HttpContext.Current.Request.ApplicationPath.ToString()) + @"\Bin\Config.ini");
strDataBaseServerPassword = GetStrFromINI("DataBaseServer", "Password", "", Host.MapPath(HttpContext.Current.Request.ApplicationPath.ToString()) + @"\Bin\Config.ini");
if(strDataBaseServerName == "")
{
WriteStrINI("DataBaseServer", "IPAddress", "127.0.0.1", Host.MapPath(HttpContext.Current.Request.ApplicationPath.ToString()) + @"\Bin\Config.ini");
strDataBaseServerName = "127.0.0.1";
}
if(strDataBaseServerUserName == "")
{
WriteStrINI("DataBaseServer", "UserName", "sa", Host.MapPath(HttpContext.Current.Request.ApplicationPath.ToString()) + @"\Bin\Config.ini");
strDataBaseServerUserName = "sa";
}
if(strDataBaseServerPassword == "")
{
WriteStrINI("DataBaseServer", "Password", "Wutonghai113", Host.MapPath(HttpContext.Current.Request.ApplicationPath.ToString()) + @"\Bin\Config.ini");
strDataBaseServerPassword = "Wutonghai113";
}
}
}
catch(Exception ex)
{
}
if(strDataBaseServerName == "")
{
strDataBaseServerName = "127.0.0.1";
}
if(strDataBaseServerUserName == "")
{
strDataBaseServerUserName = "sa";
}
if(strDataBaseServerPassword == "")
{
strDataBaseServerPassword = "Wutonghai113";
}
if(InitFlag)
{
DataBaseInit();
}
}
//'''===================================================
//'''
//''' 获得网卡MAC
//'''
//'''
//public string GetNetMACAdd()
//{
// string strMac = "";
// ManagementClass myMac = new ManagementClass("Win32_NetworkAdapterConfiguration");
// ManagementObjectCollection myMacConnection = new myMac.GetInstances();
// foreach( ManagementObject myObject in myMacConnection)
// {
// if(string.IsNullOrEmpty(myObject("MacAddress")))
// {
// ///'MAC不为空,取第一个MAC
// }
// else
// {
// strMac = myObject("MacAddress");
// break;
// }
// }
// return strMac;
//}
//Public Function GetNetMACAdd() As String
// Dim strMac As String = ""
// Dim myMac As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
// Dim myMacConnection As ManagementObjectCollection = myMac.GetInstances()
// For Each myObject As ManagementObject In myMacConnection
// If IsNothing(myObject("MacAddress")) = False Then 'MAC不为空,取第一个MAC
// strMac = myObject("MacAddress")
// Exit For
// End If
// Next
// Return strMac
//End Function
//'''===================================================
//'''
//'''打开登录数据库
//'''
public bool DataBaseInit()
{
if(this.InitFlag)
{
return true;
}
string DBConnectString = "Provider=SQLOLEDB;Data Source=" + strDataBaseServerName + ",1433;Initial Catalog=WD_IPCALL_PREGNANT;User ID=" + strDataBaseServerUserName + ";Password=" + strDataBaseServerPassword + ";MultipleActiveResultSets=true;";
try{
DBconn.ConnectionString = DBConnectString;
DBconn.Open();
if(DBconn.State == ConnectionState.Open)
{
this.InitFlag = true;
}
}
catch(Exception ex)
{
}
return this.InitFlag;
}
//'''===================================================
//'''
//'''关闭注销数据库
//'''
public bool DataBaseClose()
{
if(this.InitFlag)
{
DBconn.Close();
this.InitFlag = false;
}
return true;
}
//'''
//'''
//'''
//'''
//'''
//'''
//'''
public bool DataBaseCmd(String strSql , Int32 n )
{
int LIntCnt ;
bool res = false;
if(DataBaseInit())
{
try
{
OleDbCommand SqlCmd = new OleDbCommand("",DBconn);
SqlCmd.CommandText = strSql; //' "delete from " + TableName + " where [ID]=" + RowID.ToString()
if(n>=0)
{
n = Convert.ToInt32(SqlCmd.ExecuteScalar());
LIntCnt = n;
}
else
{
LIntCnt = SqlCmd.ExecuteNonQuery();
}
if (LIntCnt > 0)
{
res = true;
}
}
catch(Exception ex)
{
}
}
return res;
}
//'''===================================================
//'''
//'''搜索数据库中的指定表格指定字段值的记录,并从其中读取指定某条记录
//'''
//'''SQL查找语句
//'''读取结果中的第几条记录
//'''读缓存
public bool DataBaseRead(string strSql ,UInt32 RdLine , ref string[] Result , bool FiterFlag = false, string SpitStr = ":" )
{
Result = new string[1];
bool res = false;
if(DataBaseInit())
{
try
{
OleDbCommand SqlCmd = new OleDbCommand("", DBconn);
SqlCmd.CommandText = strSql;
OleDbDataReader sdr = SqlCmd.ExecuteReader();
UInt32 CurLine = 1;
while(sdr.Read())
{
if(RdLine == CurLine )
{
for(int j = 0;j)
// }
// }
// }
// }
//Public Function DataBaseReadMul(ByVal strSql As String, ByRef Result(,) As String, Optional FiterFlag As Boolean = False, Optional SpitStr As String = ":") As Boolean
// Dim Res As Boolean = False
// Dim i As Stringeger
// Dim j As UString
// '=======================
// If DataBaseInit() = True Then
// Try
// Dim SqlCmd As OleDbCommand = New OleDbCommand("", DBconn)
// SqlCmd.CommandText = strSql
// Dim sdr As OleDbDataReader = SqlCmd.ExecuteReader()
// i = 0
// While sdr.Read = True
// If i > Result.GetUpperBound(1) Then ReDim Preserve Result(Result.GetUpperBound(0), i)
// For j = 0 To sdr.FieldCount - 1
// If FiterFlag = False Then
// Result(j, i) = """" + sdr.GetName(j).ToString + """" + SpitStr + """" + sdr.GetValue(j).ToString() + """"
// Else
// Result(j, i) = sdr.GetName(j).ToString + SpitStr + sdr.GetValue(j).ToString()
// End If
// Next
// i += 1
// End While
// sdr.Close()
// Res = True
// Catch ex As Exception
// End Try
// End If
// Return Res
//End Function
}
}