2012-02-05 45 views
0
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倍)

请帮助 感谢

+1

错误的一部分*正是*它所说的。检查数据库中的实际列大小。在调试器中逐步浏览并查看值。尝试在它们上打一个.Trim(),看看是否有额外的空白,你不期望。另外,将'SqlConnection'封装在'using'块中是一个好习惯。 – 2012-02-05 07:36:13

+1

您已经指定*参数*的大小 - 但*字段*有多大? (你也应该考虑使用'StringBuilder'而不是重复的字符串连接...并更清楚地缩进你的代码。) – 2012-02-05 07:36:43

+0

你的解决方案是什么。 – 2012-02-22 20:54:05

回答

3

检查地看到,在表中的字段顺序要插入的顺序相匹配,或者添加字段名称作为输入语句

+0

哦,很好的接收。 – 2012-02-05 07:39:42

+0

我已经解决了我的问题.. – CracLock 2012-02-24 03:18:42

相关问题