错误"已经有一个名为' MD'在数据库中。"

时间:2014-08-21 06:25:57

标签: c# database

连接字符串配置文件

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

我正在创建类file.below代码,

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'的对象。”

如何解决此错误

4 个答案:

答案 0 :(得分:0)

您正在尝试在数据库中创建一个名为IT的表。如果它已经存在,则无法真正创建具有相同名称的另一个。 您可能希望在创建表之前检查数据库中是否存在表,然后确定是否需要更改表或者不管它。

答案 1 :(得分:0)

在创建表之前,请检查数据库中是否已存在表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

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

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

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

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