在我的代码中,这些查询似乎都没有运行。调试标签打印为“结束”,所以它正在执行该代码块内的东西,只是显示它不喜欢查询?ASP.net为什么这些查询不能执行?
// Check input is all valid
if (Page.IsValid)
{
debug.Text = "begin";
using (SqlConnection cn = new SqlConnection(
ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString()))
{
// Verify that username is unique
using (SqlCommand cmd = new SqlCommand(
"UPDATE tblSiteSettings SET isActive = 0", cn))
{
cn.Open();
cn.Close();
}
using (SqlCommand cmd = new SqlCommand(
"INSERT INTO tblSiteSettings (allowProductRatings, allowComments, " +
"siteName, settingDate, isActive) VALUES (@allowRatings, " +
"@allowcomments, @siteName, getDate(), 1)", cn))
{
cmd.Parameters.Add("@allowRatings", SqlDbType.Bit).Value = 1;
cmd.Parameters.Add("@allowcomments", SqlDbType.Bit).Value = 1;
cmd.Parameters.Add("@siteName", SqlDbType.VarChar, 128).Value = "lol";
cn.Open();
cn.Close();
}
debug.Text = "end";
}
}
几个问题:
- 他们为什么不执行?
- 在经典的ASP插入,更新和删除我会使用con.Execute(查询)应该使用记录集,我在这里正确运行我的更新语句?
- 是我的设计的查询好,还是应该以不同的方式执行它们?
谢谢,ExecuteNonQuery和ExecureScalar之间的区别是什么,在另一个答案建议? – 2010-08-23 08:52:30
@Tom - 我刚刚在10秒左右的时间里对你进行了扩展=)以及相关的MSDN链接,以便将答案保存为MSDN的副本和粘贴,以便您可以在其中获得完整的详细信息=) – Rob 2010-08-23 08:53:31
ExecuteScalar用于从SELECT中返回单个值作为对象。 ExecuteNonQuery返回一个int值来表示受影响的行。所有解释的链接... – 2010-08-23 08:55:03