【问题标题】:Error while adding data in SQL Server in c#?在 C# 中的 SQL Server 中添加数据时出错?
【发布时间】:2012-02-05 07:33:25
【问题描述】:
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

源头的内容有20个不同的数据(urls, titles, descriptions等)

它工作正常,但每次都会在所有 20 行中添加第一个数据值。

它真正要做的是获取并添加所有不同的 20 行 (urls, titles, descriptions),但它始终添加第一行。 (20次)

请帮忙 谢谢

【问题讨论】:

  • 错误正是它所说的。检查数据库中的实际列大小。在调试器中单步执行并查看值。尝试在它们上拍打 .Trim() 以查看是否可能存在您未预料到的额外空白。此外,最好将 SqlConnection 包装在 using 块中。
  • 您已经指定了参数的大小 - 但是字段有多大? (您还应该考虑使用StringBuilder 而不是重复的字符串连接......并且更清楚地缩进您的代码。)

标签: c# asp.net sql sql-server database


【解决方案1】:

检查表中的字段顺序是否与您插入的顺序相匹配。或者将字段名称添加为输入语句的一部分

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 2019-03-19
    • 1970-01-01
    • 2022-10-05
    • 2016-10-20
    • 2013-12-07
    相关资源
    最近更新 更多