检查是否存在特定的行,如果不存在,则添加一个新行

本文关键字:添加 新行 一个 不存在 如果不 存在 是否 如果 检查 | 更新日期: 2023-09-27 18:07:45

我是SQL和c#的初学者。我的问题是:我如何检查表中的一行是否存在?以下是我目前使用的代码:

var conn = new SqlConnection(@"Data Source");
conn.Open();            
var cmd = new SqlCommand("INSERT INTO  Results (PlayerName) VALUES (@PlayerName)  " , conn);
cmd.Parameters.Add("@PlayerName",_playerName);
cmd.ExecuteNonQuery();
conn.Close();

我想检查球员的名字是否存在,如果不存在,然后将其添加到表中。

检查是否存在特定的行,如果不存在,则添加一个新行

可以先用Select语句检查,如果不存在,再用insert语句检查。

还可以使用using语句来自动处理连接和命令,而不是手动调用Close方法。

using(var conn = new SqlConnection(yourConnectionString))
using(var cmd = conn.CreateCommand())
{
    cmd.CommandText = "Select Count(*) From Results Where PlayerName = @playerName";
    cmd.Parameters.Add("@playerName", _playerName);
    con.Open();
    int count = (int)cmd.ExecuteScalar();
    if(count == 0)
    {
        // It means it does not exist.
        cmd.CommandText = "INSERT INTO Results(PlayerName) VALUES (@playerName)";
        cmd.ExecuteNonQuery();
    }
}
if not exists(select null from Results where PlayerName=@PlayerName) begin INSERT INTO  Results (PlayerName) VALUES (@PlayerName)  end