繁体   English   中英

错误“数据库中已经有一个名为'MD'的对象。”

[英]error “There is already an object named 'MD' in the database.”

连接字符串配置文件

<connectionStrings>
     <addname="cs1"connectionString="DataSource=SUKKOORPC\SQLEXPRESSPersistSecurityInfo=True;User ID=sa;Password=admin123"/>
</connectionStrings>

我正在创建类文件。下面的代码,

public class Co
{
    public static SqlConnection con = new SqlConnection();
    public static string str;

    public static void connectDB()
    {
        if (Co.con.State != ConnectionState.Open)
        {
            Co.str = System.Configuration.ConfigurationManager.ConnectionStrings["cs1"].ToString();
            Co.con.ConnectionString = Co.str;
            Co.con.Open();
         }
     }
}

使用form2中的类文件访问执行查询。

SqlCommand sc2 = new SqlCommand("CREATE TABLE IT(Name nchar(50),Phoneno int,Doorno nchar(50),Streetname nchar(50),City nchar(50),Pincode int,District nchar(50));");
sc2.Connection = Co.con;
sc2.ExecuteNonQuery();

我有错误。 sqlException未处理。“数据库中已经有一个名为'IT'的对象。”

如何解决这个错误

您正在尝试在数据库中创建一个名为IT的表。 如果已经存在,则不能真正创建另一个相同的名称。 您可能需要在创建表之前检查表是否存在于数据库中,然后再决定是否需要更改它或仅保留它。

创建表之前,请检查表IT是否已存在于数据库中。

您的SQL查询应该像..

IF (NOT EXISTS (SELECT * 
                 FROM INFORMATION_SCHEMA.TABLES 
                 WHERE TABLE_SCHEMA = 'YourSchemaName' 
                 AND  TABLE_NAME = 'IT'))
BEGIN
    CREATE TABLE IT(Name nchar(50),Phoneno int,Doorno nchar(50),Streetname nchar(50),City nchar(50),Pincode int,District nchar(50));
END

您正在尝试创建一个名为IT的表,该表已存在于数据库中。

如果您的代码应该是可重复的,则如果存在它,则需要添加一个DROP TABLE IF EXISTS IT; 在您再次创建它之前。

还请记住,如果您这样做,所有可能存储在表中的数据都将被删除。

在您说数据库中肯定不存在该表的评论之后,我检查了您的连接字符串。 您必须使用Initial Catalog=DB数据库名称添加到连接字符串中。

<connectionStrings>
    <addname="cs1" connectionString="DataSource=SUKKOORPC\SQLEXPRESS;Initial Catalog=DatabaseName; PersistSecurityInfo=True;User ID=sa;Password=admin123"/>
</connectionStrings>

DatabaseName更改为要在其中创建表的数据库的名称。如果没有设置Initial Catalog ,则尝试在master数据库中创建表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM