0

XSLT を使用して KML ファイルを GML ファイルに正常に変換したので、GML データを SQL データベースのジオメトリ列に保存する必要があります。このコードの後に​​何を置くべきかわからない:

var doc = new XmlDocument();
var fileName = Path.GetFileName(Polygon.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
Polygon.SaveAs(path);
doc.Load(path);
var result = new XmlActionResult();
result.Document = doc;
result.TransformSource = Server.MapPath("~/App_Data/XSL/kml2gml.xsl");
return result;

できれば助けてください。

4

1 に答える 1

0

xml を取得したら、他の挿入と同様に db に書き込みます。SQL Server には xml データ型があります。それを使用して、xml を 1 つの列に格納します。これが最適です。しかし、階層を分解して別のテーブルに格納する必要がある場合、それも非常に簡単です。

    static void Main(string[] args)
    {
        var doc = new XmlDocument();
        var fileName = @"C:\test.xml";
        doc.Load(fileName);
        var connection = new SqlConnection(@"Data Source=MyServer; 
             Initial Catalog=MyDatabase; Integrated Security=SSPI");
        connection.Open();
        var command = new SqlCommand(
             "INSERT INTO dbo.Shapes (shape, desc) VALUES (@a, @b)", connection);
        command.CommandType = CommandType.Text;
        command.Parameters.Add("@a", SqlDbType.Xml);
        command.Parameters["@a"].Value = doc.OuterXml;
        command.Parameters.Add("@b", SqlDbType.VarChar);
        command.Parameters["@b"].Value = doc.InnerXml;
        command.ExecuteNonQuery();
        connection.Close();
    }
于 2012-05-30T19:58:32.370 に答える