C# 数据库连接设置保存为 ini文件问题

C# 数据库连接设置保存为 ini文件问题,第1张

1读取ini文件键值对的类,这样写

class ConfigureFile

{

public string ConfigureFilePath; //INI文件名

//声明读写INI文件的API函数

[DllImport("kernel32")]

private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

[DllImport("kernel32")]

private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);

public ConfigureFile()

{

//

// TODO: 在此处添加构造函数逻辑

//

}

//类的构造函数,传递INI文件名

public ConfigureFile(string ConfigureFilePath)

{

thisConfigureFilePath = ConfigureFilePath;

}

//写INI文件

public void WriteConfigureFileValue(string Section, string Key, string Value)

{

WritePrivateProfileString(Section, Key, Value, thisConfigureFilePath);

}

//读取INI文件指定

public string ReadConfigureFileValue(string Section, string Key)

{

StringBuilder temp = new StringBuilder(255);

int i = GetPrivateProfileString(Section, Key, "", temp, 255, thisConfigureFilePath);

ConsoleWrite(tempToString());

if (tempToString() == null ||tempToString() =="")

{

throw new Exception("Profileini读取配置文件为空");

}

return tempToString();

}

}

2处理读取的键值对这样写

/// <summary>

/// 返回Profileini配置参数

/// </summary>

public class Profile

{

private static ConfigureFile ReadConfigureFile = new ConfigureFile("\\Profileini");

/// <summary>

/// 返回数据库服务名

/// </summary>

/// <returns></returns>

public static string getServerName()

{

//对于你的问题 这个返回值就是nor 在ini文件里就是ServerName=nor

return ReadConfigureFileReadConfigureFileValue("DataBase", "ServerName");

}

/// <summary>

/// 返回登陆账户

/// </summary>

/// <returns></returns>

public static string getLogId()

{

//对于你的问题 返回值就是 sa 在ini里就是LogId=sa

return ReadConfigureFileReadConfigureFileValue("DataBase", "LogId");

}

/// <summary>

/// 返回登陆密码

/// </summary>

/// <returns></returns>

public static string getPassWord()

{

//对于你的问题返回值就是 在ini里就是PassWord=(是加密后的密码 密文形式)

return ReadConfigureFileReadConfigureFileValue("DataBase", "PassWord");

}

}

我把读ini文件 和读取ini文件中的key/value对分开写 这样是为了让你能更灵活的去添加ini中的key/value对 当你添加keyvalue对时 只需要在Profile类中添加相应的get方法就可以了 方便修改

ini文件中的键值对写成这样

[DATABASE]

ServerName='nor'

LogId='sa'

PassWord=''(是密文形式)

3这是加密你密码的类 我用MD5配合加盐值进行加密 这样就很安全

public class MD5Encrypt

{

/// <summary>

/// 将明文用MD5加密

/// </summary>

/// <param name="strPwd">需要加密的明文</param>

/// <param name="strKey">用于加密的Key(加盐值)</param>

/// <returns>加密后得到的MD5值</returns>

public static string ToEncodingByMD5(string strPwd, string strKey)

{

string key = strKeyTrim();

string strEnPwd = stringEmpty;

if (keyLength == 0)

{

key = "lwk";//默认加盐值 你自己定义加盐值,要验证登录密码是否正确 需要传进和保存其加密时 //相同的加盐值 然后对比他们的密文是不是相同

}

byte[] Original = EncodingDefaultGetBytes(strPwd);

byte[] SaltValue = EncodingDefaultGetBytes(key);

byte[] ToKey = new byte[OriginalLength + SaltValueLength];

OriginalCopyTo(ToKey, 0);

SaltValueCopyTo(ToKey, OriginalLength);

MD5 st = MD5Create();

byte[] SaltPWD = stComputeHash(ToKey);

byte[] PWD = new byte[SaltPWDLength + SaltValueLength];

SaltPWDCopyTo(PWD, 0);

SaltValueCopyTo(PWD, SaltPWDLength);

strEnPwd = ConvertToBase64String(PWD);

return strEnPwd;

}

}

ASCII函数是认为定义了许多字符,没个字符有对应的代码,你可以对代码进行加减来改变字符,比如

大写字母

小写字母

等,你可以去找下

ASCII表

就容易理解了;)

这是程序中的编码错误:

Python的默认编码是ASCII模式,不支持utf8;

代码中如果存在中文字符的话,会出现提示错误;

解决方法:源代码文件第一行添加:#coding:utf-8,这样就可以避免了。

以上就是关于C# 数据库连接设置保存为 ini文件问题全部的内容,包括:C# 数据库连接设置保存为 ini文件问题、数据库中select ASCII('a') as 'a' ,ASCII('A') as 'A'怎么理解啊、python2.7 中文输出为ascii问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9483314.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存