J'ai une fonction et une procédure qui vérifie qu'un enregistrement existe dans la base de données ou non. Cela suppose d'obtenir 1 quand l'enregistrement existe et 0 n'existe pas. J'exécuté mon procédure fonctionne correctement, mais en studio visuel n'a pas work.I n'a pas pu trouver le problème voici ma procédureExecuteScalar return 0 valeur
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
et ci-dessous est ma fonction:
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;
}
et je vérifier avec cela si statment sous forme principale
int a = Db.CheckRepetitive(ConStr, txtBxModelName.Text);
if (a > 0)
{
MessageBox.Show(a.ToString() + " exist!!");
return;
}
« ExecuteScholar » sonne comme une action anti-véritable éducation barbare, – maccettura
Vous devez être prudent avec 'AddWithValue', il est très bien dans ce cas précis, mais il y a des situations où [il peut vous causer de ne pas utiliser les index dans votre base de données s'il choisit le mauvais type] (https://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/), il est préférable d'utiliser 'Ajouter' et transmettre un type. –