当前位置: 首页 > 面试题库 >

INSERT vs. UPDATE [重复]

柯波
2023-03-14
问题内容

这个问题已经在这里有了答案

如果存在使用VB.net更新其他插入(SQL参数化查询) (3个答案)

7年前关闭。

我有以下查询:

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["chestionar"].ConnectionString);
SqlCommand cmd = new SqlCommand("INSERT INTO Raspunsuri Values(@raspuns,@cnp,@data,'1',@ip,@idsesiune)", con);

cmd.Parameters.AddWithValue("@cnp", Session["sesiune_cnp"]);
cmd.Parameters.AddWithValue("@raspuns", textbox1.Text);
cmd.Parameters.AddWithValue("@data", DateTime.Now.ToLocalTime());
cmd.Parameters.AddWithValue("@ip",ip);
cmd.Parameters.AddWithValue("@idsesiune", id_sesiune);

try
{
    con.Open();
    cmd.ExecuteNonQuery();
    Response.Redirect("User2.aspx");
}
catch (Exception ex)
{
    Console.WriteLine("Error:" + ex);
}
finally
{
    con.Close();
}

我需要查看表中是否有任何记录,是否有更新而不是其他插入。如何实现?


问题答案:

您可以在SQL中使用Exists函数。例如

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["chestionar"].ConnectionString);   
    SqlCommand cmd = new SqlCommand("if Exists(Select 1 from Raspunsuri where <your unique criteria>)\r\n" +
"Update Raspunsuri set <values you want to set> where <your unique criteria\r\n" +
"else\r\n" +
"INSERT INTO Raspunsuri Values(@raspuns,@cnp,@data,'1',@ip,@idsesiune)", con);

    cmd.Parameters.AddWithValue("@cnp", Session["sesiune_cnp"]);   
    cmd.Parameters.AddWithValue("@raspuns", textbox1.Text);   
    cmd.Parameters.AddWithValue("@data", DateTime.Now.ToLocalTime());   
    cmd.Parameters.AddWithValue("@ip",ip);   
    cmd.Parameters.AddWithValue("@idsesiune", id_sesiune);

这应该够了吧



 类似资料:
  • 嗨,我想知道是否有人能帮我。我有两个。xsd架构文件顺序服务顺序。xsd和order。xsd,每个xsd都将元素类型命名为“order”。 当我开始为这些模式文件创建Java源代码时,我显然在Order类上遇到了类名冲突。 我创建了一个jaxb bindings. xjb文件来重命名从orderservice-order.xsd.生成的订单类名 然而,我仍然得到以下错误 中的XPATH似乎没有问题

  • 上面说这是一次意外的超驰,但这不是偶然的... 我想要的可能吗?还是必须重写方法。我更喜欢kotlin setter..

  • 当我运行这段代码时,它会打印。我的问题是为什么没有编译时错误?对象和字符串的默认值为NULL。那么为什么不编译器说。

  • 也许我对概念感到困惑,但是重写和在子类中创建一个新方法之间有什么区别呢?重写不就是在子类中创建一个不同于父类的新的特定方法吗?但这难道不是在子类中创建一个新方法所要做的吗?

  • 我在一个有这些类的项目中工作: 这些coures类具有其他方法和属性。 如果可以的话,它应该能够使用来自Square和RedRectangle的方法,否则它应该使用来自Rectangle的方法,并且它应该迫使开发人员从他自己的代码中为所有在Square和RedRectangle中被重写的方法编写代码。 我实际上知道这是多重继承,Java不支持它,但我需要实现这种行为。 我试图使用Square和Re

  • 简介 本章中我会介绍重复。通过重复,你可以编写“通常的”程序。虽然也可以使用do表达式,但Scheme中通常通过递归实现重复。 递归 在自己的定义中调用自己的函数叫做递归函数(Recursive Function)。虽然这听起来很奇怪,但是循环的常见方法。如果你把函数类比为机器的话,递归似乎毫无道理。然而,正因为函数是过程,函数调用自己是有意义的。比如说,让我们来考察一下文献调研吧。你可能需要去阅

  • 问题内容: 这个问题已经在这里有了答案 : 8年前关闭。 可能重复: mysql中id(auto_increment列)的碎片 我的数据库中有此列。假设其名称为“ threadid”。它包含赋予每个线程以区别的唯一ID。 线程号9 8 7 6 5 4 3 2 1 假设我已删除ID为5和6的线程。 线程号9 8 7 4 3 2 1 但是,当删除后有一个提交时,给该线程的唯一ID是10。不是5。我认为

  • 我正在尝试重命名/删除一个 Mongo 集合,我无意中放了一个 .(点) 在数据库集合名称的末尾,因此集合名称如下所示: 收藏品名称。 我无法找到一种方法来使用包含点号的集合名称来删除或重命名集合,而不会返回错误。 任何建议这是否是可能的。