我已經創建了一種方法來在每次數據添加到數據庫時檢查數據庫。原因是檢查重複的主鍵(手動生成)。我面臨的問題是即使數據存在於數據庫中,該方法始終返回空值。在插入數據之前檢查數據庫時總是得到空值
這裏是我的代碼:
public int checkComRegnumberAvailable(string conRegnumber)
{
using (SqlConnection con = new SqlConnection(cs))
{
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = "SELECT RegNumber FROM OtherCompanyData";
con.Open();
//string result = ((string)cmd.ExecuteScalar());
string result = (string)cmd.ExecuteScalar();
cmd.ExecuteNonQuery();
if (result == null)
{
return 0;
}
if (result.Equals(conRegnumber))
{
return 1;
}
else
{
return 2;
}
}
}
你確定你的'選擇RegNumber FROM OtherCompanyData'返回的數據?您是否在Management Studio上嘗試過?如果'result'爲'null',那意味着你的命令返回空集。 'cmd.ExecuteNonQuery()'在你的情況下是無用的。它什麼都不做。 –
當你使用'select'類時,你不能使用ExecuteScalar。 select將返回記錄列表(即使記錄只包含每個記錄的一個值)。你實際上在尋找什麼,如果一個帶有'conRegnumber'值的記錄已經存在? –
@SteenTøttrup['ExecuteScalar'](https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar(v = vs.110).aspx):_返回第一列結果集中的第一行由query_ – Grundy