Ich möchte diese gespeicherte Prozedur von einem C # -Programm ausführen.
Ich habe die folgende gespeicherte Prozedur in ein SqlServer-Abfragefenster geschrieben und als gespeichert1 gespeichert:
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
EDITIERT:
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();
}
}
}
Dies zeigt die Ausnahme an Cannot find the stored procedure dbo.test
. Muss ich den Pfad angeben? Wenn ja, an welchem Ort sollen die gespeicherten Prozeduren gespeichert werden?
c#
sql-server
stored-procedures
Niedlich
quelle
quelle
Antworten:
quelle
conn.Close
, wird von derDispose
Open
undClose
Anrufe. Wenn Sie sagen, dass Sie das Verbindungsobjekt in Zukunft als Feld umgestalten und die using-Anweisung entfernen, vergessen Sie möglicherweise versehentlich,Close
eine offene Verbindung hinzuzufügen und zu erhalten.Parameters
Sammlung desSqlCommand
Objekts hinzu.Hier sind einige interessante Links, die Sie lesen können:
quelle
public sealed class SqlCommand : System.Data.Common.DbCommand, ICloneable, IDisposable
. Setzen Sie es inusing
Aussage hilft beim Aufräumen.Aufrufen der Speicherprozedur in C #
quelle
quelle
quelle
Dies ist Code zum Ausführen gespeicherter Prozeduren mit und ohne Parameter über Reflektion. Beachten Sie, dass die Objekteigenschaftsnamen mit den Parametern der gespeicherten Prozedur übereinstimmen müssen.
quelle
Mit Ado.net
quelle
Dies ist ein Beispiel für eine gespeicherte Prozedur, die einen Wert zurückgibt und in c # ausgeführt wird
quelle
Dapper verwenden. Also habe ich das hinzugefügt. Ich hoffe, jemand hilft.
quelle
Bitte schauen Sie sich Crane an (ich bin der Autor)
https://www.nuget.org/packages/Crane/
Hat auch eine Reihe anderer Funktionen, die Ihnen gefallen könnten.
quelle
Sie meinen, Ihr Code ist DDL? Wenn ja, hat MSSQL keinen Unterschied. Die obigen Beispiele zeigen gut, wie man dies aufruft. Stellen Sie einfach sicher
quelle
Keine adrette Antwort hier. Also habe ich einen hinzugefügt
quelle