[英]how can i save XmL data from a URL into my database
我知道如何將XML數據加載到字符串中,但是無法將其內容(XML文件節點中的內容)存儲到數據庫中。 我已經嘗試了許多解決方案,但是在我的情況下它們都沒有用。 XML鏈接是:-
http://timesofindia.indiatimes.com/rssfeedstopstories.cms
我只想保存XML文件的節點中存在的數據,而XML文件來自URL。
使用(var client = new WebClient()){字符串xmlData = new System.Net.WebClient()。DownloadString(“ http://timesofindia.indiatimes.com/rssfeedstopstories.cms ”); XmlDocument xml =新的XmlDocument(); XmlNodeList nodeList = xml.SelectNodes(“ / rss / channel / item”);
foreach (XmlNode node in nodeList)
{
var title = node["title"].InnerText;
var description = node["description"].InnerText;
var link = node["link"].InnerText;
var guid = node["guid"].InnerText;
var pubdate = node["pubDate"].InnerText;
SqlConnection cnn = new SqlConnection(@"Data Source=vishal-pc\mssqlserver2012;Initial Catalog=aditya;User ID=sa;password=1234");
SqlCommand cmd = new SqlCommand("insert into XMLdata (title,description,link,guid,pubdate) VALUES (@xmlData,@xmlData1,@xmlData2,@xmlData3,@xmlData4)", cnn);
cnn.Open();
//string sqlForInsert = "INSERT INTO XMLdata (title,description,link,guid,pubdate) VALUES (@xmlData,@xmlData1,@xmlData2,@xmlData3,@xmlData4);";
int rowsAffected = 0;
//try
//{
// using (SqlConnection con = new SqlConnection(@"Data Source=vishal-pc\mssqlserver2012;Initial Catalog=aditya;User ID=sa;password=1234"))
// using (SqlCommand cmd = new SqlCommand(sqlForInsert, con))
{
cmd.Parameters.Add(new SqlParameter("@xmlData", title));
cmd.Parameters.Add(new SqlParameter("@xmlData1", description));
cmd.Parameters.Add(new SqlParameter("@xmlData2", link));
cmd.Parameters.Add(new SqlParameter("@xmlData3", guid));
cmd.Parameters.Add(new SqlParameter("@xmlData4", pubdate));
rowsAffected = cmd.ExecuteNonQuery();
cnn.Close();
}
試試這個,你要做的一切:
添加其他參數
string xmlData = new System.Net.WebClient().DownloadString("http://timesofindia.indiatimes.com/rssfeedstopstories.cms"); string sqlForInsert = "INSERT INTO TableName (xmlDataField) VALUES (@xmlData);"; int rowsAffected = 0; try { using (SqlConnection con = new SqlConnection("<ConnectionString>")) using (SqlCommand cmd = new SqlCommand(sqlForInsert, con)) { cmd.Parameters.Add(new SqlParameter("xmlData", xmlData)); con.Open(); rowsAffected = cmd.ExecuteNonQuery(); } } catch (Exception ex) { //Exception Handling } if (rowsAffected > 0) { //Successful } else { //unsuccesfull }
調試您的代碼。
打印異常消息。
檢查受影響的行的值。
檢查xmlDataField列的數據類型和SqlParameter中的一種。
enter code here
using (var client = new WebClient())
{
string xmlData = new System.Net.WebClient().DownloadString("http://timesofindia.indiatimes.com/rssfeedstopstories.cms");
XmlDocument xml = new XmlDocument();
xml.LoadXml(xmlData);
XmlNodeList nodeList = xml.SelectNodes("/rss/channel/item");
foreach (XmlNode node in nodeList)
{
var title = node["title"].InnerText;
var description = node["description"].InnerText;
var link = node["link"].InnerText;
var guid = node["guid"].InnerText;
var pubdate = node["pubDate"].InnerText;
SqlConnection cnn = new SqlConnection(@"Data Source=vishal-pc\mssqlserver2012;Initial Catalog=aditya;User ID=sa;password=1234");
SqlCommand cmd = new SqlCommand("insert into XMLdata (title,description,link,guid,pubdate) VALUES (@xmlData,@xmlData1,@xmlData2,@xmlData3,@xmlData4)", cnn);
//string sqlForInsert = "INSERT INTO XMLdata (title,description,link,guid,pubdate) VALUES (@xmlData,@xmlData1,@xmlData2,@xmlData3,@xmlData4);";
int rowsAffected = 0;
//try
//{
// using (SqlConnection con = new SqlConnection(@"Data Source=vishal-pc\mssqlserver2012;Initial Catalog=aditya;User ID=sa;password=1234"))
// using (SqlCommand cmd = new SqlCommand(sqlForInsert, con))
{
cmd.Parameters.Add(new SqlParameter("@xmlData", title));
cmd.Parameters.Add(new SqlParameter("@xmlData1", description));
cmd.Parameters.Add(new SqlParameter("@xmlData2", link));
cmd.Parameters.Add(new SqlParameter("@xmlData3", guid));
cmd.Parameters.Add(new SqlParameter("@xmlData4", pubdate));
cnn.Open();
rowsAffected = cmd.ExecuteNonQuery();
cnn.Close();
}
XElement rssFeeds = null;
using (var client = new WebClient())
{
try
{
string rssString = new System.Net.WebClient().DownloadString("http://timesofindia.indiatimes.com/rssfeedstopstories.cms");
rssFeeds = XElement.Parse(rssString);
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
if (rssFeeds != null)
{
using (SqlConnection con = new SqlConnection(@"Data Source=vishal-pc\mssqlserver2012;Initial Catalog=aditya;User ID=sa;password=1234"))
{
con.Open();
var tran = con.BeginTransaction();
try
{
rssFeeds.Descendants("item").ToList().ForEach(e =>
{
string insertSql = @"insert into XMLdata (title,description,link,guid,pubdate) VALUES (@title,@description,@link,@guid,pubdate)";
SqlCommand cmd = new SqlCommand(insertSql, con, tran);
cmd.Parameters.Add(new SqlParameter("title", e.Element("title").Value));
cmd.Parameters.Add(new SqlParameter("description", e.Element("description").Value));
cmd.Parameters.Add(new SqlParameter("link", e.Element("link").Value));
cmd.Parameters.Add(new SqlParameter("guid", e.Element("guid").Value));
cmd.Parameters.Add(new SqlParameter("pubdate", e.Element("pubDate").Value));
cmd.ExecuteNonQuery();
});
}
catch (Exception ex)
{
tran.Rollback();
Debug.WriteLine(ex.Message);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.