Получавам тази грешка „не мога да отворя потребителска база данни по подразбиране. Неуспешно влизане“. Това, което направих, беше да използвам ORM, за да създам DataContext, в кода първо извикам функцията TableExists, за да проверя дали version_tbl съществува, ако не, тогава извикайте скриптове за изпълнение на sql команди за създаване на version_tbl. След това създайте нов dataContext, но проблемът е след извикването, че получавам тази грешка в dataContext обект. Ако премахна извикването на TableExists, тогава създаването на dataContext е добре или преместя създаването на dataContext преди извикването на TableExists, но тогава проблемът възниква в извикването на TableExists, когато се опита да се свърже. Изглежда, че мога да се свържа само веднъж. Както и да е, мога да извикам TableExists, след което мога да създам dataContext?
По-долу е моят примерен код
static bool TableExists(string tableName) {
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 ();