Je veux exécuter cette procédure stockée à partir d'un programme C #.
J'ai écrit la procédure stockée suivante dans une fenêtre de requête SqlServer et l'ai enregistrée en tant que stored1:
use master
go
create procedure dbo.test as
DECLARE @command as varchar(1000), @i int
SET @i = 0
WHILE @i < 5
BEGIN
Print 'I VALUE ' +CONVERT(varchar(20),@i)
EXEC(@command)
SET @i = @i + 1
END
ÉDITÉ:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace AutomationApp
{
class Program
{
public void RunStoredProc()
{
SqlConnection conn = null;
SqlDataReader rdr = null;
Console.WriteLine("\nTop 10 Most Expensive Products:\n");
try
{
conn = new SqlConnection("Server=(local);DataBase=master;Integrated Security=SSPI");
conn.Open();
SqlCommand cmd = new SqlCommand("dbo.test", conn);
cmd.CommandType = CommandType.StoredProcedure;
rdr = cmd.ExecuteReader();
/*while (rdr.Read())
{
Console.WriteLine(
"Product: {0,-25} Price: ${1,6:####.00}",
rdr["TenMostExpensiveProducts"],
rdr["UnitPrice"]);
}*/
}
finally
{
if (conn != null)
{
conn.Close();
}
if (rdr != null)
{
rdr.Close();
}
}
}
static void Main(string[] args)
{
Console.WriteLine("Hello World");
Program p= new Program();
p.RunStoredProc();
Console.Read();
}
}
}
Cela affiche l'exception Cannot find the stored procedure dbo.test
. Dois-je fournir le chemin d'accès? Si oui, à quel endroit les procédures stockées doivent-elles être stockées?
c#
sql-server
stored-procedures
Mignonne
la source
la source
Réponses:
la source
conn.Close
, est sous-entendu par leDispose
Open
et desClose
appels. Si vous dites à l'avenir de refactoriser l'objet de connexion en tant que champ et de supprimer l'instruction using, vous pouvez accidentellement oublier d'ajouterClose
et de vous retrouver avec une connexion ouverte.Parameters
collection de l'SqlCommand
objet.Voici quelques liens intéressants que vous pouvez lire:
la source
public sealed class SqlCommand : System.Data.Common.DbCommand, ICloneable, IDisposable
. Le mettre enusing
déclaration aidera à nettoyer.Procédure d'appel du magasin en C #
la source
la source
la source
C'est le code pour exécuter des procédures stockées avec et sans paramètres via la réflexion. Notez que les noms des propriétés des objets doivent correspondre aux paramètres de la procédure stockée.
la source
En utilisant Ado.net
la source
ceci est un exemple d'une procédure stockée qui renvoie une valeur et son exécution en c #
la source
Utilisation de Dapper. j'ai donc ajouté ceci j'espère que quelqu'un vous aidera.
la source
Veuillez consulter Crane (je suis l'auteur)
https://www.nuget.org/packages/Crane/
A également un tas d'autres fonctionnalités que vous pourriez aimer.
la source
Vous voulez dire que votre code est DDL? Si c'est le cas, MSSQL n'a aucune différence. Les exemples ci-dessus montrent bien comment l'invoquer. Assurez-vous simplement
la source
Aucune réponse Dapper ici. J'ai donc ajouté un
la source