我领导叫我做一个查询系统,我做完了拿去给领导看 领导说:“这个连接字符串要改,生成可执行文件之后就不能改源码了,到时候万一不对没法弄。这样,你用udl文件取得字符串”。
我回来研究了一下,发现udl文件是一个ole db的连接器(虽然我不知道具体是个什么,但大约是测试数据库生成连接字符串的。)我就用streamreader取得了里面的字符串,代码如下:
String udl = Application.StartupPath + "\\udl.udl";
StreamReader sr = new StreamReader(udl, Encoding.Default);//生成一个流对象读取指定文件
string UDLFile = "";//用来装连接字符串的
for (int i = 0; i < 3; i++)
{
UDLFile = sr.ReadLine();
}
//里面一共三行数据 第三行才是连接字符串
UDLFile = UDLFile.Replace("Provider=SQLOLEDB.1;", ""); //字符串格式化,因为里面有些字符是多余的
现在可以用了,不过不安全,因为udl文件其实是个文本对象,很容易泄密。我想知道还有没有更安全便捷的方式来操作连接具体哪个数据库。
------解决思路----------------------
不一定非要保存在udl里,xml,txt,access,excel,只要是能读出来写进去的文件类型都可以,哪怕是你自定义二进制文件里面存字符串,只要能对应读出来也行
怕泄密,你需要对字符串进行加密,程序读出来之后再解密
不过这样一来,你的配置文件就没有意义了,因为根本没法在客户机运行的时候手动去改
要想做到真正数据库安全,你需要使用webservice等中间件(服务端程序)来访问数据库,而不是客户端直连