我正在尝试使用以下代码将数据插入表中:
try
{
conn.ConnectionString = "connection_string";
conn.Open();
using (SqlCommand command = new SqlCommand("CREATE TABLE UXZona(IDZona int,Morada char(50));", conn))
command.ExecuteNonQuery();
SqlCommand insertCommand = new SqlCommand("INSERT INTO UXZona(FirstColumn, SecondColumn) VALUES (@0, @1)", conn);
}
catch (Exception)
{
SqlCommand cmd = new SqlCommand("create table UXZona(IDZona int NOT NULL, Morada varchar(50) NOT NULL);", conn);
conn.Open();
cmd.ExecuteNonQuery();
Console.WriteLine("Tabela criada com sucesso");
}
我启动程序没有任何问题,但是它停止了调试并给出了以下错误消息:
“数据库中已经有一个名为'UXZona'的对象”
它跳过
try{}
并直接转到catch{}
。关于我在做什么错的任何线索吗?如果需要,请随时请求更多代码。 最佳答案
问题在这里:
SqlCommand command = new SqlCommand("CREATE TABLE UXZona(IDZona int,Morada char(50));", conn)
您应该检查对象是否已经存在:
SqlCommand command = new SqlCommand("IF OBJECT_ID('UXZona', 'U') IS NULL CREATE TABLE UXZona(IDZona int,Morada char(50));", conn)
我还将重新考虑您在运行时创建数据库对象的方法。它需要DDL特权,并可能导致安全问题。
关于c# - 插入表格时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45609566/