这里是我的代码,它的工作方式在数据库具有表“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”表,它会跳转到“adapter.Update(table);”行中的“catch”异常。
所以我的问题是如何在数据库中创建一个新的表,如果它没有“UserInformation”表。另外,如果数据库已经有表“UserInformation”,我可以在该表中添加一个新的“Position”列吗?
我不确定你在问什么。你是否试图将行插入可能不存在的表中?如果表不存在,是否希望数据库服务器自动创建具有特定字段结构的表? (为什么表不在那里?)我建议使用CREATE TABLE命令或使用交互式工具(如SQL Server Management Studio)创建表。另外,你没有提到你正在使用什么样的数据库。相应地标记这个问题将提高答案的相关性。 –
我希望数据库服务器自动创建表。原因是,我将允许用户选择数据库,因此如果用户切换到新数据库,我的应用程序应该能够在新数据库中创建该表。 –
您将不得不创建您的程序执行的脚本或一系列SQL语句。存储过程或触发器已关闭,因为如果数据库是新的,它将不会有表或任何代码来创建表。我会检查一个表的存在,然后询问用户“初始化表(应用程序名称)?”如果用户说是,请运行您的脚本或“CREATE TABLE”SQL语句集。 –