对C#SQL插入进行故障排除

时间:2018-07-02 21:27:10

标签: c# asp.net sql-server visual-studio-2017

直到几个小时前,此代码和类似代码都可以正常工作。我删除并重新创建了数据库以更改timestamp数据类型,以便将其显示为记录的更新时间。现在很好,我用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");
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

好吧,我完全看不到您正在执行命令addBlogCmd,因为addBlogConn.Open();语句之后没有任何内容。而且,我都没有看到您通过数据适配器/数据集使用断开连接的体系结构。所以大概可以解释这个问题。

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