我得到这个“无法打开用户默认数据库。登录失败”错误。我所做的是使用ORM创建DataContext,在代码中调用TableExists函数来检查version_tbl是否存在,如果不存在,则调用脚本来执行exec命令以创建version_tbl。然后创建一个新的dataContext,但是问题出在调用后我在dataContext实体上得到这个错误。如果我删除TableExists调用,那么dataContext创建就绪,或者在TableExists调用之前移动dataContext创建,但是当它尝试连接时,在TableExists调用中发生问题。似乎我只能连接一次。无论如何,我可以调用TableExists然后能够创建dataContext?无法打开用户默认数据库。登录失败错误
下面是我的代码示例
静态布尔TableExists(字符串表名) {
using (SqlConnection connection = new SqlConnection("Data Source=localhost\\SQLEXPRESS;Initial Catalog=planning;Integrated Security=True"))
{
string checkTable =
String.Format(
"IF OBJECT_ID('{0}', 'U') IS NOT NULL SELECT 'true' ELSE SELECT 'false'",
tableName);
SqlCommand command = new SqlCommand(checkTable, connection);
command.CommandType = CommandType.Text;
connection.Open();
bool retVal = Convert.ToBoolean(command.ExecuteScalar());
return retVal;
}
}
myFunc()
{
if (!TableExists ("version_tbl"))
{
// call scripts to create version_tbl
}
DataContext ctx = new DataContext();
密切的没有什么区别,用同样的错误 System.Data.SqlClient.SqlException被抓获 消息=“无法打开用户默认数据库。登录失败。\ r \ n登录名用户失败” 源=” .NET的SqlClient数据提供者 “ 错误码= -2146232060 类= 11 LineNumber上= 65536 总数= 4064 过程= ”“ 服务器=” \\\\。\\管\\ 62547E80-CB39-45 \\ TSQL \\查询“ State = 1 – queandans 2009-10-27 02:16:00