从C#中有效地写入SQL Server

时间:2015-11-11 21:10:15

标签: c# sql-server database

我是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();
    }

另外两个问题是:

  • 如何检查表格是否存在(找不到合适的答案)

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

我很遗憾因为长篇大论,我的坏习惯: - (

此致 罗布。

1 个答案:

答案 0 :(得分:2)

将来,如果您有多个问题,您应该将它们分成多个帖子。

对于问题#1:.NET将透明地缓存SqlConnection,因此只要连接字符串始终相同,就可以获得与快速创建和关闭连接相关的非常小的开销

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