我是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#程序的新表进行比较。或者说它更基本:这种格式的表格是否存在,是或否。
我很遗憾因为长篇大论,我的坏习惯: - (
此致 罗布。
答案 0 :(得分:2)
将来,如果您有多个问题,您应该将它们分成多个帖子。
对于问题#1:.NET将透明地缓存SqlConnection
,因此只要连接字符串始终相同,就可以获得与快速创建和关闭连接相关的非常小的开销
对于问题#2和#3,您应分别查看INFORMATION_SCHEMA.TABLES和INFORMATION_SCHEMA.COLUMNS视图。