【发布时间】:2014-12-31 09:08:11
【问题描述】:
我正在开发一个 asp.net 应用程序。我想知道如何更新 oracle 表记录的字段,如果记录不存在,则插入它。
我有一个包含以下字段 NAME 和 SURNAME 的表格。
我想将 SURNAME 更改为 NAME 等于="name" 的记录的“new_surname”。但是,如果表中没有任何记录包含字段 NAME 等于名称,我想插入一条新记录(SURNAME=new_surname 和 NAME=name)。
这是我的代码:
OracleConnection connection = new OracleConnection(connectionstring);
try
{
connection.Open();
OracleCommand command = connection.CreateCommand();
string sql = "UPDATE TABLE SET SURNAME=\'new_surname\' WHERE NAME=\'name\'";
command.CommandText = sql;
command.ExecuteNonQuery();
connection.Close();
}
catch (Exception exp)
{
}
只有当更新找到与“where”子句匹配的零记录时,是否有一种最佳方法来执行插入操作。我正在考虑首先对匹配“where”子句的记录进行选择计数,然后如果我发现零个结果我会做一个插入,如果我发现至少一个结果我会做一个更新。但我觉得这个解决方案有点重。
【问题讨论】:
-
谢谢,但 c# 方面没有解决方案。
-
当您使用 C# 编写 SQL 时,为什么不能在 C# 中编写使用 MERGE 的 SQL 语句?