Вот мой код, он работает, когда база данных имеет таблицу «UserInformation»Как создать новую таблицу в базе данных, если таблица не существует (C#)
public bool Save()
{
using (SqlConnection connection = new SqlConnection(ConnectionString)
{
connection.Open();
using (SqlTransaction transaction = connection.BeginTransaction())
{
try
{
using (var adapter = new UserInformationTableAdapter())
{
adapter.Connection = connection;
adapter.Transaction = transaction;
var table = new HelloDataSet.UserInformationDataTable();
HelloDataSet.UserInformationRow row = table.NewUserInformationRow();
row.UserName = userName;
row.Password = password;
row.Brithday = brithday;
table.Rows.Add(row);
adapter.Update(table);
transaction.Commit();
return true;
}
}
catch (Exception e)
{
transaction.Rollback();
return false;
}
finally
{
connection.Close();
}
}
}
Однако, когда нет ни одной таблицы в базе данных он не будет создавать таблицу «UserInformation» в базе данных, она перейдет к исключению «catch» в строке «adapter.Update (table)»;
Так что мой вопрос: как создать новую таблицу в базе данных, если в ней нет таблицы «UserInformation». Кроме того, если в базе данных уже есть таблица «UserInformation», я могу добавить новый столбец «Позиция» в этой таблице?
Я не уверен, что вы просите. Вы пытаетесь вставить строки в таблицу, которая может не существовать? Вы хотите, чтобы сервер базы данных автоматически создавал таблицу с конкретной структурой поля, если таблица отсутствует? (Почему таблица не будет?) Я бы предложил создать таблицу с помощью команды CREATE TABLE или с помощью интерактивного инструмента, такого как SQL Server Management Studio. Кроме того, вы не указываете, с какой базой данных вы работаете. Пометка этого вопроса соответственно улучшит релевантность ответов. –
Я хочу, чтобы сервер базы данных автоматически создавал таблицу. Причина в том, что я позволю пользователю выбрать базу данных, поэтому, если пользователь переключится на новую базу данных, мое приложение должно будет создать эту таблицу в новой базе данных. –
Вам понадобится создать сценарий или серию операторов SQL, выполняемых вашей программой. Хранимые процедуры или триггеры отсутствуют, потому что если база данных новая, для создания таблиц не будет таблиц или кода. Я бы проверил наличие одной из ваших таблиц и попросил пользователя «инициализировать таблицы для (имя приложения)?» и если пользователь говорит «да», запустите свой скрипт или набор операторов SQL CREATE TABLE. –