Je suis un novice quand il s'agit de SQL. Lors de la création d'une procédure stockée avec des paramètres tels que:Procédure stockée Valeur par défaut
@executed bit,
@failure bit,
@success bit,
@testID int,
@time float = 0,
@name varchar(200) = '',
@description varchar(200) = '',
@executionDateTime nvarchar(max) = '',
@message nvarchar(max) = ''
Ceci est la forme correcte pour les valeurs par défaut dans T-SQL? J'ai essayé d'utiliser NULL au lieu de ''.
Lorsque j'ai tenté d'exécuter cette procédure via C#, j'obtiens une erreur indiquant que la description est attendue mais non fournie. En l'appelant comme ceci:
cmd.Parameters["@description"].Value = result.Description;
résultat.Description est null. Cela ne devrait-il pas par défaut être NULL (bien dans mon cas en ce moment) en SQL?
est ici la commande d'appel:
cmd.CommandText = "EXEC [dbo].insert_test_result @executed,
@failure, @success, @testID, @time, @name,
@description, @executionDateTime, @message;";
...
cmd.Parameters.Add("@description", SqlDbType.VarChar);
cmd.Parameters.Add("@executionDateTime", SqlDbType.VarChar);
cmd.Parameters.Add("@message", SqlDbType.VarChar);
cmd.Parameters["@name"].Value = result.Name;
cmd.Parameters["@description"].Value = result.Description;
...
try
{
connection.Open();
cmd.ExecuteNonQuery();
}
...
finally
{
connection.Close();
}
plus facile de définir CommandType à SPROC et CommandText "insert_test_result", cependant. –