2015-08-13 67 views
0

我是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(); 

我要檢查,如果玩家名字的存在與否,如果沒有,然後將其添加到表中。

+1

之前'INSERT'執行另一個查詢'SELECT'並獲得計數。稍後使用'cmd.ExecuteScalar'來檢查結果。 – Habib

回答

3

您可以先使用Select聲明先檢查它,然後insert它如果它不存在。

還使用using statement來自動處置您的連接和命令,而不是手動調用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(); 
    } 
} 
+2

這就是我想要的,謝謝兄弟! –

2
if not exists(select null from Results where [email protected]) begin INSERT INTO Results (PlayerName) VALUES (@PlayerName) end 
+0

我更喜歡這種方法,因爲您只需要將一條命令發送到數據庫 –

相關問題