C# 埃菲奇ë;nt从C写入SQL Server#

C# 埃菲奇ë;nt从C写入SQL Server#,c#,sql-server,database,C#,Sql Server,Database,我是c语言编程新手,对SQL毫无经验。但是当VB6出现时,我曾经做过一些编程。我正在编写一个程序,从一个由计算机生成的转储文件中创建一个SQL Server数据库。它包含数据,我需要为其创建+-200个表,然后再次读取该文件以填充所有表 我已安装Microsoft SQL Server 2014和Visual Studio Express 2015 我能够读取文本文件并确定所需的表,我可以打开数据库并创建表。我有三个问题,其中两个我可以在这个论坛上找到答案,还有一个问题仍然让我困惑 第一个问题是

我是c语言编程新手,对SQL毫无经验。但是当VB6出现时,我曾经做过一些编程。我正在编写一个程序,从一个由计算机生成的转储文件中创建一个SQL Server数据库。它包含数据,我需要为其创建+-200个表,然后再次读取该文件以填充所有表

我已安装Microsoft SQL Server 2014和Visual Studio Express 2015

我能够读取文本文件并确定所需的表,我可以打开数据库并创建表。我有三个问题,其中两个我可以在这个论坛上找到答案,还有一个问题仍然让我困惑

第一个问题是每次创建新表时创建一个新连接是否有效。C#程序“设计”我放入字符串“NewType”中的表,然后调用CreateBlockType来创建新表。之后,将创建一个新表并再次发送到CreateBlockType。这种情况会发生200次,之后在填充实际数据本身时可能会发生45000次

static void CreateBlockType(string NewType)
{
    using (SqlConnection conn = new SqlConnection("Server=WIJ-PC\\SQLEXPRESS;Initial Catalog=FoxData;Integrated Security=True;"))
    {
        conn.Open();
        using (SqlCommand command = new SqlCommand(NewType, conn)) 
              command.ExecuteNonQuery();
        conn.Close();
    }
另外两个问题是:

  • 如何检查表是否存在(未找到正确答案)

  • 最后一个有点难以解释,但假设文件包含两种客户类型的数据,它们具有相同的名称,但列可能略有不同,因此我需要创建两个表,但什么是比较数据库中现有表与c#程序刚刚创建的新表的快速方法。或者更基本地说:是否存在此格式的表,是或否

对不起,我的话太多了,我的坏习惯是:-(

真诚地,
Rob.

将来,如果你有多个问题,你真的应该把它们分成多个帖子

对于问题#1:.NET将透明地缓存
SqlConnection
s,因此,只要连接字符串始终相同,快速创建和关闭连接的开销应该很小


对于问题2和问题3,您应该分别查看INFORMATION#SCHEMA.TABLES和INFORMATION#SCHEMA.COLUMNS视图。

SQL Server有另一种检查对象是否存在的方法:函数
OBJECT#ID
。请参阅提供了一些有关创建连接和连接池的提示。此问题的所有三个部分都已回答首先,谢谢你的回答,我会研究一下你提供的链接。我知道的一件事是,我问了一些已经被问到的问题。问题是它不容易被提出,所以它对所有的问题都是一致的。欢迎这么做!请考虑把你的问题分成个别的帖子。s、 避免问别人意见的问题。请随意回顾,以便提供帮助