Web-API für den Aufruf der gespeicherten Prozedur und Ergebnis zurückgeben
Ich bin erstellen einer Web-API, die akzeptiert zwei Eingabeparameter namens ACC. Erstellt eine gespeicherte Prozedur zum einfügen oder aktualisieren Sie die Konto-Tabelle in den SQL-server. Konto-Tabelle hat nur zwei Felder AccountID nvarchar(50) (Primärschlüssel) und Cnt int
CREATE PROCEDURE [dbo].[usp_InserUpadte]
@Account_TT AS Account_TT READONLY
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION;
MERGE dbo.[Account] prj
USING @Account_TT tt
ON prj.AccountID = tt.AccountID
WHEN MATCHED THEN UPDATE SET prj.Cnt = prj.Cnt+1
WHEN NOT MATCHED THEN INSERT (AccountID,Cnt)
VALUES (tt.AccountID, 1);
COMMIT TRANSACTION;
Nun versuchte ich eine Verbindung zu SQL server nicht sicher ist, wie wie würde ich rufen Sie die gespeicherte Prozedur in der ASP.NET Web-API-Anwendung und die Konto-ID zu erstellen oder updadte die Tabelle
namespace WebService.Controllers
{
public class CreationController : ApiController
{
[HttpGet]
public HttpResponseMessage Get(string ACC)
{
string strcon = System.Configuration.ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;
SqlConnection DbConnection = new SqlConnection(strcon);
Ich weiß, wir können rufen Sie die Abfrage direkt, wie
var strQuery = "SELECT * from ACCOUNT where ACC = :ACC"
Aber nicht wissen, wie aufrufen, die oben gespeicherte Prozedur und übergeben Sie die Rechnung Wert. Jede Hilfe wird sehr geschätzt.
- Sie wollen pass
Account_TT
- Tabelle gespeicherten Prozedur als parameter? - Danke @Saadi, aber ich weiß nicht, wie Sie rufen Sie die Gespeicherte Prozedur in meine Anwendung
- Schauen Sie auf diesen link, bitte: stackoverflow.com/questions/4259989/...
- Ich habe Account erstellt Tabelle mit zwei Feldern AccountID nvarchar(50) (Primärschlüssel) und Cnt. int. und ich versuche, führen Sie die Prozedur speichern-Abfrage, aber es nicht ausführen.
- Hast du einen TableType Account_TT ?
- Bitte teilen Abfrage für TableType Account_TT.
- -- Erstellen der Datentyp
CREATE TYPE Account_TT AS TABLE ( AccountID nvarchar(50) ) GO
- Ok. Ich habe meine Antwort.
- Lassen Sie uns weiter, diese Diskussion im chat.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist das komplette Beispiel.
Bitte haben Sie einen Blick auf es.
Um eine gespeicherte Prozedur aufrufen, müssen Sie eine
SqlCommand
so etwas wie dieses: