【发布时间】:2012-09-17 21:27:00
【问题描述】:
我正在使用 ADO.NET 从服务器上的数据库中获取一些信息,
所以这就是我所做的:
string conStr = "Data Source=myServer\SQLEXPRESS;Initial Catalog=DBName;User ID=myUser;Password=myPassword";
SqlConnection conn = new SqlConnection(conStr);
conn.Open();
// do stuff
conn.Close();
但在调用 Open 方法后,我注意到 conn.ConnectionString 正在丢失密码,因此它变为:
"Data Source=myServer\SQLEXPRESS;Initial Catalog=DBName;User ID=myUser;"
这会导致任何 SqlCommand 后缀异常
如何解决这个问题?
注意:奇怪的是这并不总是发生
编辑:我认为它与它自己的命令没有任何关系,但无论如何
SqlCommand command = new SqlCommand("select GetDate()", conn);
SqlDataReader reader = command.ExecuteReader();
【问题讨论】:
-
对于初学者来说,执行 conn.Open() 后您是否有实际代码,否则您将根据上面示例中的内容打开它然后关闭它..
-
conStr 不能在您发布的代码中被SqlConnection 修改。您是否正在尝试查看 conn.ConnectionString (或一些类似的属性?)。
-
@insta:这就是 OP 所说的:“我注意到 conn.ConnectionString 正在丢失密码”
-
SqlConnection出于安全考虑会去掉密码是不是不合理?
-
@Star:那么我必须同意 DJ_KRAZE 的观点,即这毫无意义。为什么要使用除了返回数据库中的当前时间之外什么都不做的查询?
DateTime.Now会更有效率。