0

ネットからダウンロードしたファイルで SQL テーブルを自動入力しようとしている C# プロジェクトがあります。

ファイルはhttp://ts1.travian.com/map.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);

読みやすくするために、各 INSERT コードの前に改行を挿入しました。

プロジェクトで必要なすべての列を使用してテーブルを再作成しましたが、プロジェクトでボタン (CommandButton1 という名前) をクリックしてファイルをダウンロードし、そのすべてのデータをプロジェクトのテーブルの必要な列に解析するにはどうすればよいですか? (ダウンロードしたファイル内のデータは、カンマで区切られているように見えます)。

4

2 に答える 2

1

ロビーの回答のコードを使用して、それについて詳しく説明します。

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();
        }
    }     
于 2012-11-21T22:16:18.417 に答える
0

ファイルのダウンロードを開始するためのサンプル コードがいくつかあります。

C# で Web サイトからファイルをダウンロードする方法

その後、SSIS/SQL Server エージェント/バッチ ジョブを実行して、データの読み込みを行うことができます。または、コードで実行したい場合:

C# を使用して .SQL スクリプト ファイルを実行する方法

于 2012-11-21T22:01:25.713 に答える