首页 > 解决方案 > C# SQL 插入疑难解答

问题描述

直到几个小时前,这段代码和类似的代码都运行良好。我删除并重新创建了数据库以更改时间戳数据类型,因此它将显示为记录更新的时间。现在好了,我已经current_timestamp修好了。

这是我对数据库所做的唯一更改,否则它是 VS2017 中相同的服务器、相同的数据库名称、相同的连接字符串。几天前我什至更换了服务器,但没有出现任何问题,但由于某种原因,这段代码在我放弃后一直不起作用。

谁能建议为什么?代码最初是否有缺陷?

protected void BtnSubmitPost_ServerClick(object sender, EventArgs e)
{
        string bpTitle = txtBlogHeader.Text;
        string bpBody = txtBlogBody.Text;

        using (SqlConnection addBlogConn = new SqlConnection(ConfigurationManager.ConnectionStrings["childrens"].ConnectionString))
        {
            using (SqlCommand addBlogCmd = new SqlCommand())
            {
                try
                {
                    addBlogCmd.CommandType = CommandType.Text;
                    addBlogCmd.CommandText = "INSERT INTO blogPosts (bp_header, bp_body) VALUES (@bpTitle, @bpBody)";

                    addBlogCmd.Parameters.Add("@bpTitle", SqlDbType.VarChar).Value = bpTitle;
                    addBlogCmd.Parameters.Add("@bpBody", SqlDbType.VarChar).Value = bpBody;
                    addBlogCmd.Connection = addBlogConn;

                    addBlogConn.Open();
                    lblBhError.Visible = false;
                    //lblStaffConfirm.Visible = true;
                    lvBlogs.DataBind();
                    addBlogConn.Close();
                }
                catch
                {
                    Response.Redirect("/staff.aspx");
                }
            }
        }
    }

标签: c#asp.netsql-servervisual-studio-2017

解决方案


好吧,我根本看不到您正在执行命令,因为语句addBlogCmd之后没有任何内容。addBlogConn.Open();此外,我也没有看到您通过数据适配器/数据集使用断开连接的架构。所以可能这解释了这个问题。

本质上,您缺少addBlogCmd.ExecuteNonQuery()执行您准备的命令的语句


推荐阅读