Comment utiliser la procédure stockée au lieu de la requête dans la chaîne de connexion. Peux-tu me suggérer de coder ???Utilisation de la procédure stockée avec l'exemple
Répondre
Vous devez définir vos commandes sql - dans ce cas, un appel de la procédure stockée -, puis vous connecter à la base de données, envoyer votre requête et recevoir le résultat.
N'oubliez pas de fermer la connexion par la suite!
Un bon tutoriel est en ligne sur csharp-station.
Je ne peux pas décrire toute la procédure ici, si vous avez des questions plus détaillées viennent tout juste et demander - c'est ce que Stackoverflow est pour :)
Ici, vous allez
string spName = "stored_proc_name";
string idParameterValue = "someId";
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
using (SqlCommand command = new SqlCommand(spName, connection))
{
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@Id", idParameterValue));
connection.Open();
IDbDataAdapter da = new SqlDataAdapter();
da.SelectCommand = command;
// (*) Put here a code block of the actual SP execution logic
// There are different ways of SP execution and it depends on
// return result set type, see below
}
}
(*) Choisissez une approche appropriée:
Enregistrer résultat de sortie situé dans un DataSet
// Store output result set in the DataSet DataSet ds = ExecuteQuery(da);
OU lecture entier unique en tant que valeur de retour de procédure stockée (pas param!)
IDataReader reader = command.ExecuteReader(); if (reader != null && reader.Read()) { retValue = (reader.GetInt32(returnParamName)); }
Dans le cas où la procédure stockée ne retourne rien
bool successfull = cmd.ExecuteNonQuery() == 1;
Méthodes auxiliaires
private static DataSet ExecuteQuery(IDataAdapter da)
{
DataSet ds = new DataSet("rawData");
da.Fill(ds);
ds.Tables[0].TableName = "row";
foreach (DataColumn c in ds.Tables[0].Columns)
{
c.ColumnMapping = MappingType.Attribute;
}
return ds;
}
public static class DataReaderExtensions
{
public static Int32 GetInt32(this IDataReader rdr, string fieldName)
{
int ordinal = rdr.GetOrdinal(fieldName);
return !rdr.IsDBNull(ordinal) ? rdr.GetInt32(ordinal) : Int32.MinValue;
}
}
Liens utiles:
pas besoin de fermer la connexion quand il est enveloppé dans un 'using' –
Droit, retiré. – sll
- 1. Utilisation de la procédure stockée
- 2. SQL: Utilisation de la procédure stockée dans une procédure stockée
- 3. Utilisation d'une procédure stockée dans une procédure stockée
- 4. Utilisation de la procédure stockée avec Entity Framework ou non?
- 5. Utilisation LIKE dans la procédure stockée avec le paramètre d'entrée
- 6. problème avec la procédure stockée?
- 7. Viemodel avec procédure stockée
- 8. procédure stockée avec filtre
- 9. bit utilisation du type de données dans la procédure stockée
- 10. Travailler avec procédure stockée
- 11. Utilisation de la procédure stockée paramétrée dans ASP.NET
- 12. Exécuter la procédure stockée w/Paramètre dans la procédure stockée
- 13. Problème de curseur avec la procédure stockée
- 14. avec la logique de procédure stockée
- 15. Utilisation de la procédure stockée dans Crystal Report 8.5?
- 16. Utilisation de tables temporaires dans la procédure stockée Oracle
- 17. Passer des paramètres de la procédure stockée à la fonction (à l'intérieur de la procédure stockée)
- 18. Verrouillage de la procédure stockée
- 19. sorties de la procédure stockée de contrôle
- 20. Procédure stockée exécutant une autre procédure stockée
- 21. écriture procédure stockée dans l'autre procédure stockée
- 22. Exécuter la procédure stockée
- 23. Procédure stockée
- 24. Modification de la procédure stockée
- 25. Appel de la procédure stockée
- 26. procédure stockée
- 27. Impossible d'exécuter la procédure stockée avec nHibernate
- 28. Exécuter la procédure stockée avec les paramètres
- 29. Problème avec la procédure stockée SQL
- 30. Appel Procédure stockée avec la sortie
* au lieu de requête dans la chaîne de connexion * J'espère que vous connaissez la chaîne de connexion est un autre but plutôt que d'interroger. S'il vous plaît prenez le temps de formuler une question réelle. – V4Vendetta