我有一个函数和一个检查记录的过程是否存在于数据库中或不存在。当记录存在且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/),最好使用'添加'并传入一个类型。 –