【发布时间】:2021-04-20 08:56:05
【问题描述】:
我想向您公开我的问题:实际上,通过 AJAX 函数我调用了一个服务器端函数,它应该执行一个查询。此查询根据提供的数据删除表中存在相关数据的最后一行。在服务器端函数中,除了查询之外一切正常,它不是删除最后一行,而是删除所有行。谁能告诉我确切的查询?
public static void Contr_Dati(string provin)
{
string queryString = "DELETE FROM Prov_inser WHERE (SELECT MAX (Province_Inserite) FROM Prov_inser) = @Prov";
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["coso"].ConnectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand(queryString, connection))
{
SqlParameter parameter = new SqlParameter("Prov", provin);
command.Parameters.Add(parameter);
command.ExecuteNonQuery();
connection.Close();
}
}
}
【问题讨论】:
-
当然可以:您的查询类似于
DELETE FROM Prov_inser WHERE 1 = 1(因为 WHERE 子句的结果不取决于给定行中的值)。您的查询指出:如果(SELECT MAX (Province_Inserite) FROM Prov_inser)的结果等于@Prov,则删除Prov_inser中的所有行。你只想要DELETE FROM Prov_inser WHERE Province_Inserite = @prov吗? -
我尝试 DELETE FROM Prov_inser WHERE Province_Inserite = @Prov 并且它有效,它删除了表中与我插入的数据相同的所有数据。我正在寻找更准确的东西,我希望根据我在输入中输入的内容删除最后输入的数据。例如我输入“Hello”,我想删除输入“Hello”的最后一行。我希望我已经更清楚了。
-
如果 Province_Inserite 是行 ID,那么您可能需要类似
DELETE FROM Prov_inser WHERE Province_Inserite = (SELECT MAX(Province_Inserite) FROM Prov_inser WHERE /*someconditionhere*/)的内容。我不太确定这些列代表什么,或者@prov 是什么,所以我真的无能为力。也许您可以编辑您的问题。 -
@prov 是我在文本区域中从键盘输入的输入。可能我的问题没有很好地表达出来,无论如何还是非常感谢您的建议,非常好心!
标签: javascript c# sql