public class Test 
{
public static void Main()  
{
OleDbConnection conn = new OleDbConnection("Provider=SQLOLEDB.1;User ID=sa;Password=dgjsj;Initial Catalog=HouseRecords;Data Source=LQ;Auto Translate=True;Packet Size=4096;Workstation ID=WS;Use Encryption for Data=False;");
OleDbDataAdapter da = new OleDbDataAdapter( "select * from [user]", conn );
DataTable dt = new DataTable();
da.Fill(dt);
Console.WriteLine( conn.ConnectionString );
Console.ReadLine();
}
}此段程序的运行结果是:
Provider=SQLOLEDB.1;User ID=sa;Initial Catalog=HouseRecords;Data Source=LQ;Auto Translate=True;Packet Size=4096;Workstation ID=WS;Use Encryption for Data=False;请问为什么会丢失密码部分?怎样可以解决这个问题?

解决方案 »

  1.   

    和OleDbDataApater.Fill没关系,其实密码没丢失,只不过不在ConnectionString中显示罢了
      

  2.   

    在数据库连接对象中有一个ConnectionString属性,这个存储的就是你的数据库连接字符串
      

  3.   

    需要另外保存数据库链接串,直接从Connection对象中是无法获得的,获得的链接串没有密码,这应该是出于安全性考虑。
    你可以重新读取配置文件获得或者保存在程序的其他地方。
      

  4.   

    5555
    我需要将用过的 数据库连接字符串 序列化,发现每次OPEN之后 ConnectionString属性 中的密码就没有了,如果不OPEN就正常, 没有更好的办法么?