C# 从自动下载的.SQL文件中填充SQL数据

C# 从自动下载的.SQL文件中填充SQL数据,c#,sql,database,import,C#,Sql,Database,Import,我有一个C#项目,我试图用从网上下载的文件自动填充SQL表 该文件是,您将看到它已经为SQL数据库操作设置了数据 下面是他们的一点表情: INSERT INTO `x_world` VALUES (1517,315,399,3,181705,'New Remial',82126,'Tale',0,'',273); INSERT INTO `x_world` VALUES (67792,107,316,1,175829,'3.Clay',35440,'salvaje_jabali'

我有一个C#项目,我试图用从网上下载的文件自动填充SQL表

该文件是,您将看到它已经为SQL数据库操作设置了数据

下面是他们的一点表情:

INSERT INTO `x_world`
    VALUES (1517,315,399,3,181705,'New Remial',82126,'Tale',0,'',273);
INSERT INTO `x_world`
    VALUES (67792,107,316,1,175829,'3.Clay',35440,'salvaje_jabali',0,'',244);
INSERT INTO `x_world`
    VALUES (32790,349,360,1,189271,'Lumeria',9702,'Aquifel',90,'APE',20);
INSERT INTO `x_world`
    VALUES (72449,-42,310,1,194313,'New village',2634,'paloc',0,'',24);
INSERT INTO `x_world`
    VALUES (75669,-26,306,1,170802,'Yao Ming',2634,'paloc',0,'',330);
为了便于阅读,我在每次插入代码之前都插入了一条换行符


我已经在我的项目中用所有必需的列重新创建了表,但是如何让项目在单击按钮(名为CommandButton1)时下载文件,然后将所有数据解析到我的项目中表中必需的列中(下载文件中的数据似乎一直用逗号分隔).

这里有一些示例代码,可以让您开始下载文件:

然后,您可以运行SSIS/SQL Server代理/批处理作业来执行数据加载。或者,如果您想在代码中执行此操作:


使用Robbie回答中的代码并详细说明:

using System.Net;

//Download
WebClient Client = new WebClient ();
Client.DownloadFile("http://ts1.travian.com/map.sql", @"C:\folder\file.sql");

// Read into a file
var sqltext = System.IO.File.ReadAllText(@"c:\folder\file.sql");
// Split the sql statements up
var sqlStatements = sqltext.Split(';'); 

// Insert
using (SqlConnection connection = new SqlConnection(connectionParameters))
    {   
        connection.Open();
        foreach (var sqlStatement in sqlStatements)  
        {
            SqlCommand command = new SqlCommand(sqlStatement, connection);
            command.ExecuteNonQuery();
        }
    }     

这个“从网上下载的文件”来自哪里?攻击者有没有办法向文件中注入文本?如果有人注入了“DROP DATABASE”怎么办?嗨Robbie,这绝对是对我问题的第一部分进行了排序,但现在要将文件添加到表中。我会尝试你发送的第二个链接,并会让你知道。非常感谢你。如果你想在这里得到答案,请花点时间用一些关键词和“stackoverflow”在Google或任何你选择的搜索引擎中搜索问题档案。Stackoverflow上的我们很乐意帮助解决任何编程问题,但我们希望保持档案中的任何类似或重复的问题都是干净的,这些问题以前可能已经回答过了……嗨,Matt,谢谢,这非常有效,但是,这可能显示了我的无知,但是它说:“名称‘connectionParameters’在当前上下文中不存在”。我有一种感觉,我缺少了一些东西,比如说清楚一点,我已经设置好了表,它的名称为x_world。它有所有必需的列,没有问题。我已经将它放在数据集(database1DataSet)中,并且我已经放置了一个数据网格视图(DataGridView1)在一个表单中,这样我可以看到之后上传的数据,但它仍然说我的连接参数不存在。再次(再次)您好,我想我已经解决了这个问题,将该行更改为:using(SqlConnection connection=new SqlConnection(Properties.Settings.Default.x_worldConnectionString))是的,“connectionParameters“是您连接详细信息的占位符-您破解了它。”