我有一個函數和一個檢查記錄的過程是否存在於數據庫中或不存在。當記錄存在且0不存在時,假設得到1。我執行我的程序它可以正常工作,但在Visual Studio不幹活找不到問題 這裏是我的程序ExecuteScalar返回0值
Create PROCEDURE [dbo].[checkRepititiveModel]
@modelName nvarchar(50)
as
If EXISTS (SELECT * FROM models WHERE modelName = @modelName)
begin
return 1
end
Else
begin
return 0
end
以下是我的函數:
public int CheckRepetitive(string connectionString,string modelName)
{
SqlCon = new SqlConnection(connectionString);
if (SqlCon.State != ConnectionState.Open)
{
SqlCon.Open();
}
SqlCommand com = new SqlCommand("checkRepititiveModel", SqlCon);
com.Parameters.AddWithValue("@modelName", modelName);
com.CommandType = CommandType.StoredProcedure;
int result = Convert.ToInt32(com.ExecuteScalar());
if (SqlCon.State != ConnectionState.Closed)
{
SqlCon.Close();
}
return result;
}
和我如果以主要形式陳述,請檢查它
int a = Db.CheckRepetitive(ConStr, txtBxModelName.Text);
if (a > 0)
{
MessageBox.Show(a.ToString() + " exist!!");
return;
}
「ExecuteScholar」聽起來像一些真正的野蠻,反教育行爲 – maccettura
你應該小心'AddWithValue',正是在這種特殊情況下正常,但在哪裏[它可以使你不使用索引的情況下,在你的數據庫中,如果它選擇了錯誤的類型](https://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/),最好使用'添加'並傳入一個類型。 –