直到几个小时前,此代码和类似代码都可以正常工作。我删除并重新创建了数据库以更改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");
}
}
}
}
答案 0 :(得分:1)
好吧,我完全看不到您正在执行命令addBlogCmd
,因为addBlogConn.Open();
语句之后没有任何内容。而且,我都没有看到您通过数据适配器/数据集使用断开连接的体系结构。所以大概可以解释这个问题。
本质上来说,您缺少addBlogCmd.ExecuteNonQuery()
语句来执行已经准备好的命令