StringBuilder Description = new StringBuilder();
StringBuilder Title = new StringBuilder();
StringBuilder URL = new StringBuilder();
SqlConnection cs = new SqlConnection("Data Source = MyPC\\SQLEXPRESS; Initial Catalog = Youtube; Integrated Security =True;");
SqlDataAdapter da = new SqlDataAdapter();
string url = TextBox1.Text.ToString();
var doc = XDocument.Load(url);
var items = doc.Descendants("item");
XNamespace nsContent = "http://purl.org/rss/1.0/modules/content/";
XNamespace nsfeedburner = "http://rssnamespace.org/feedburner/ext/1.0";
cs.Open();
foreach (var item in items)
{
Title.Append(item.Element("title").Value); //For Title
var encodedContent = (string)item.Element(nsContent + "encoded");
var decodedContent = System.Net.WebUtility.HtmlDecode(encodedContent);
var html = new HtmlDocument();
html.LoadHtml(decodedContent);
var ps = html.DocumentNode.Descendants("p");
foreach (var p in ps)
{
var textContent = p.InnerText;
Description.Append(textContent.Trim().ToString());
}
URL.Append((string)item.Element(nsfeedburner + "origLink"));
da.InsertCommand = new SqlCommand("INSERT INTO datalinks VALUES (@URL, @Title, @Content)", cs);
da.InsertCommand.Parameters.Add(new SqlParameter("@URL", SqlDbType.VarChar,250)).Value = URL.ToString();
da.InsertCommand.Parameters.Add(new SqlParameter("@Title", SqlDbType.VarChar, 200)).Value = Title.ToString();
da.InsertCommand.Parameters.Add(new SqlParameter("@Content", SqlDbType.VarChar, 2000)).Value = Description.ToString();
da.InsertCommand.ExecuteNonQuery();
}
cs.Close();
我使用这个代码从我的数据库中插入一些牵强值:http://feeds.feedburner.com/TechCrunch
在c#中添加SQL Server中的数据时出错?
在源的内容有20个不同的数据(urls, titles, descriptions
等)
其工作正常,但它的加入每次在所有20行中的第一个数据值。
它实际上应该做的是获取并添加所有不同的20行(urls, titles, descriptions
),但它总是添加第一行。 (20倍)
请帮助 感谢
错误的一部分*正是*它所说的。检查数据库中的实际列大小。在调试器中逐步浏览并查看值。尝试在它们上打一个.Trim(),看看是否有额外的空白,你不期望。另外,将'SqlConnection'封装在'using'块中是一个好习惯。 – 2012-02-05 07:36:13
您已经指定*参数*的大小 - 但*字段*有多大? (你也应该考虑使用'StringBuilder'而不是重复的字符串连接...并更清楚地缩进你的代码。) – 2012-02-05 07:36:43
你的解决方案是什么。 – 2012-02-22 20:54:05