我正在尝试使用以下代码将数据插入表中:

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/

10-10 02:44