1

XML データ (リモートREST サービスから取得したもの) を C# を使用して SQL Server データベースに挿入するのを手伝ってくれる人はいますか?

前もって感謝します。

コード

HttpWebRequest myHttpWebRequest = WebRequest.Create("http://api.asicentral.com/v1/news.xml") as HttpWebRequest;

HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();

Encoding enc = System.Text.Encoding.GetEncoding(1252);
StreamReader loResponseStream = 
    new StreamReader(myHttpWebResponse.GetResponseStream(), enc);

string Response = loResponseStream.ReadToEnd();
myHttpWebResponse.Close();
4

3 に答える 3

1

ADO.Netの学習を開始しますhttp://www.csharp-station.com/Tutorial/AdoDotNet/lesson01

または、このEntity FrameworkCodeFirstアプローチを試してくださいhttp://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx

さて、上記は少し鈍いので、なぜWebサービスの応答をデータベースに保存したいのですか?

意味のあることを行うには、おそらくxmlを解析する必要があります。ここにはいくつかのオプションがあります。頭に浮かぶカップル。xmlを厳密に型指定されたオブジェクトに逆シリアル化するか、linqを使用して匿名型を作成します。最後に、ADO.NetまたはEntity Frameworkを使用して、オブジェクトをデータベースに格納できます。

于 2012-06-19T10:39:20.227 に答える
1

この XML を SQL Server に挿入するには、SQL Server に type の列を持つテーブルが必要ですXML

次に、次のような非常に単純なものを使用できます。

string connectionString = "......";  // define your connection string here
string query = "INSERT INTO dbo.YourTableNameHere(XmlColumn) VALUES(@XmlContent)";

// set up SqlConnection and SqlCommand
using(SqlConnection conn = new SqlConnection(connectionString))
using(SqlCommand cmd = new SqlCommand(query, conn))
{
    // define parameter for query and set its value to your XML response
    cmd.Parameters.Add("@XmlContent", SqlDbType.VarChar, -1);
    cmd.Parameters["@XmlContent"].Value = Response;    // assign your XML response here

    // open connection, execute INSERT, close connection
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();     
}

もちろん、Entity Framework やその他の ORM のようなものを使用すると、状況は大きく異なります....これは単に「まっすぐな」純粋な ADO.NET

于 2012-06-19T10:58:07.283 に答える