gpt4 book ai didi

c# - ASP.net 为什么这些查询没有执行?

转载 作者:太空宇宙 更新时间:2023-11-03 20:39:44 24 4
gpt4 key购买 nike

在我的代码中,这些查询似乎都没有运行。调试标签打印为“结束”,因此它正在该代码块内执行某些操作,只是看起来它不喜欢查询?

// 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";
}
}

几个问题:

  1. 他们为什么不执行?
  2. 在用于插入、更新和删除的经典 ASP 中,我会像使用记录集一样使用 con.Execute(query),我在这里正确运行我的更新语句吗?
  3. 我的查询设计是否良好,或者我应该以不同的方式执行它们?

最佳答案

它没有做任何事情的原因是你实际上没有执行查询。你需要做的是:

// Verify that username is unique
using (SqlCommand cmd = new SqlCommand("UPDATE tblSiteSettings SET isActive = 0", cn))
{
cn.Open();
cmd.ExecuteNonQuery();
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();
cmd.ExecuteNonQuery();
cn.Close();
}

您缺少的是 cmd.ExecuteNoneQuery(); 行。 SqlCommand 类公开了各种不同的Execute 方法,最常用的是:

  • ExecuteNonQuery : 执行查询并且不返回查询结果(但是它确实返回受影响的行作为其返回值)
  • ExecuteScalar : 执行查询并返回第一行第一列的值
  • ExecuteReader : 执行查询并将数据返回给 SqlDataReader

关于c# - ASP.net 为什么这些查询没有执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3545957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com