Почему мой стол не создается?
У меня есть этот код в моем приложении Winforms, чтобы создать таблицу в существующей базе данных (которую я создал, следуя тому, что написаноВот):
private void CreateTables()
{
string connStr = @"Data Source=
(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|
\AYttFM.mdf;Integrated Security=True";
using (var connection = new
System.Data.SqlClient.SqlConnection(connStr))
{
try
{
connection.Open();
using (var command = connection.CreateCommand())
{
StringBuilder sb = new StringBuilder();
sb.Append("CREATE TABLE [dbo].[AssignmentHistory] ");
sb.Append("(");
sb.Append("[Id] INT NOT NULL PRIMARY KEY, ");
sb.Append("[WeekOfAssignment] DATE NOT NULL,");
sb.Append("[TalkType] INT NOT NULL,");
sb.Append("[StudentID_FK] INT NOT NULL, ");
sb.Append("[AssistantID_FK] INT NOT NULL, ");
sb.Append("[CounselPoint] INT NOT NULL");
sb.Append(")");
command.CommandText = sb.ToString();
command.ExecuteNonQuery();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
Он работает без жалоб, но таблица не создается. При обновлении как соединения данных, так и его папки таблиц в обозревателе серверов в Visual Studio Community 2015 таблицы не отображаются.
Я что-то упустил в коде выше?
Примечание: я разбил connStr на несколько строк выше для форматирования; в реальном коде connStr находится в одной строке.
Я также не могу подключиться к файлу .mdf через LINQPad, используя «LINQ to SQL по умолчанию» и поставщика SQL Server, и перейти к файлу .mdf в моем проекте (C: \ AYttFMApp \ AYttFMScheduler \ AYttFMScheduler \ AYttFM. мдф). Это говорит мне, что есть ошибка сети:
Я получаю это, использую ли я сервер по умолчанию «. \ SQLEXPRESS» или задаю для него имя моего компьютера (единственная запись под «Серверы» в обозревателе серверов Visual Studio).
ОБНОВИТЬЯ перезагрузил свой ноутбук, но это не помогло. Соединения данных проводника сервера ничего не показывают, даже после того, как я обновляю и пытаюсь добавить один, с именем моего компьютера в качестве имени сервера (в конце концов, именно так он и говорит, что сервер есть в обозревателе серверов) и выбор файла .mdf дает При тестировании соединения я получаю ту же ошибку, что и LINQPad.
ОБНОВЛЕНИЕ 2Curiouser и curiouser: теперь, когда я запускаю свое приложение, когда оно попадает в код Create Table, я получаю сообщение об исключении, которое говорит, что таблица AssignmentHistory уже создана. Тем не менее, если я посмотрю на обозреватель серверов, хотя сама база данных снова вернется, папка «Таблицы» все еще пуста. Как стол может быть и там, и не там?
Я все еще задаюсь вопросом, неправильные ли свойства, установленные в файле .mdf; как я написал в комментарии ниже, все свойства имеют значения по умолчанию: для параметра «Копировать в выходной каталог» задано значение «Копировать всегда», а для параметра «Действие построения» задано значение «Содержимое». Следует ли изменить какое-либо из них?