protected void Button1_Click(object sender, EventArgs e)
{ SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["constr"]);
string strsql = "InSert Into [AddWord] (UserName,Email,QQ,Title,Content,Face,AddTime,IP) values ('" + Username.Text + "','" + Email.Text + "','" + QQ.Text + "','" + Title.Text + "','" + FormatString(content.Text) + "','" + Face.SelectedItem.Value + "','" + DateTime.Now + "','" + Request.UserHostAddress + "')";
conn.Open();
SqlCommand cmd2 = new SqlCommand(strsql, conn);
try
{
cmd2.BeginExecuteNonQuery();
cmd2.Dispose();
conn.Close();
//提交成功,返回显示页面。
Response.Write("<script>alert('恭喜你,提交成功,感谢您的参与!');parent.location='ForumIndex.aspx'</script>");
} catch (System.Data.SqlClient.SqlException)
{
//出现错误
cmd2.Dispose();
conn.Close();
conn.Dispose(); //出现提示页面。
Response.Write("<script>alert('对不起,操作出现错误,请返回!!');parent.location='ForumIndex.aspx'</script>");
}
} private string FormatString(string str)
{
str = str.Replace(" ", " ");
str = str.Replace("<", "<");
str = str.Replace(">", ">");
str = str.Replace('\n'.ToString(), "<br>");
return str;
}点击提交按钮之后,提示 "恭喜你,提交成功,感谢您的参与",但是数据库没有获取值。
诡异的是我将表AddWord改成ddWord,依然提示提交成功,这是为什么呢? 学长学姐们请指教。
SqlCommand cmd2 = new SqlCommand(strsql, conn);有问题。交换下顺序,并且也写在try里
你写入后先cmd.ExecuteNonQuery();
然后不进行释放试一下。连接也先不要关。
另外 conn.Open();
SqlCommand cmd2 = new SqlCommand(strsql, conn);
应该交换一下顺序吧。 IAsyncResult result = cmd2.BeginExecuteNonQuery();
while (!result.IsCompleted)
{
........
}
Response.Write("<script>alert('恭喜你,提交成功,感谢您的参与!');parent.location='ForumIndex.aspx'</script>");
直接使用ExecuteNonQuery()
直接使用ExecuteNonQuery()
怎么判断呢?回复6L, 必须用异步操作才能执行,和BeginExecuteNonQuery()没有关系。