2016-06-07 18 views
0

Ich baue einen Webservice in ASP.NET, die eine gespeicherte Prozedur aufrufen, um alle Fälle zwischen zwei Daten zu erhalten. Ich bin mit SQL Management Studio Hier ist mein Code:Ich versuche, alle SQL-CaseID zwischen zwei Datumsangaben zu erhalten

ALTER PROCEDURE spGetNewCases 
    (@startDate datetime, @endDate datetime) 
AS 
BEGIN 
    SELECT 
     caseID 
    FROM 
     tblCases 
    WHERE 
     dateOpened BETWEEN @startDate and @endDate 
END 
GO 
EXEC spGetNewCases 

Allerdings bekomme ich folgende Fehlermeldung:

"Could not find object spGetNewCases".

in der IDE, die Worte "zwischen" und "und" werden in Licht hervorgehoben grau statt dunkelblau. Darüber hinaus möchte ich es mit zwei Daten testen, sagen 2015-01-01 und 2015-01-04.

Das Format meiner Datetime in meinem SQL-Server ist datetime2 ((0), null). Z.B.

2015-01-02 00:00:00. 

Ich würde das Feedback der Gemeinschaft sehr schätzen. Vielen Dank!

EDIT:

Vielen Dank an alle für Ihre große Hilfe! Hier ist mein neuer Code, der funktioniert!

-- procedure 
USE [vetDatabase_Wizard] 
GO 
ALTER PROCEDURE sp_GetNewCases (@startDate datetime, @endDate datetime) 
AS 
BEGIN 
    SELECT caseID FROM tblCases 
    WHERE dateOpened BETWEEN @startDate and @endDate 
END 
GO 
EXEC sp_GetNewCases '2015-01-01', '2015-04-04' 
+1

Haben Sie die Prozedur schon erstellt? Ich glaube nicht, dass Sie eine Prozedur ändern können, die es noch nicht gibt. – Mike

Antwort

1

Wenn Ihr SP erstellt wurde, überprüfen Sie Ihren DB-Kontext. In SSMS gibt es ein Dropdown-Menü, Sie können auch DBNAME verwenden. In ASP-Code ist es in Ihrer Verbindungszeichenfolge.

Wenn es nicht erstellt wird, müssen Sie zuerst Prozedur erstellen und dann können Sie Prozedur ändern.

Sie können die SP rufen etwa so: EXEC spGetNewCases '2016-03-01', '2016-05-01'

Randbemerkung: Gespeicherte Systemprozeduren verwenden, um die sp Präfix haben Sie wahrscheinlich etwas anderes wie sp_ oder usp wählen sollten.

+0

Vielen Dank für Ihre Hilfe! : D Es hat funktioniert! – Johnathan

2

Überprüfen Sie Ihre Datenbank

USE CASE_DB 
GO 

Ihr Schemanamen Qualifizieren.

ALTER PROCEDURE schema.spGetNewCases ... 

sehen, ob es nicht finden ...

EDIT

WENN Sie SSMS verwenden - Rechtsklick auf Ihre gespeicherte Prozedur, und wählen Sie ‚Ändern‘. Dadurch erhalten Sie eine vordefinierte ALTER-Vorlage, die Sie dann ändern können.

+1

Auch 'EXEC spGetNewCases' ist ein Aufruf, der die Parameter nicht enthält. 'EXEC dbo.spGetNewCases '2015-01-01', '2015-01-04'' – JohnLBevan

+1

@JohnLbevan - guter Punkt - aber ich denke die Fehlermeldung in diesem Fall ist anders -' Prozedur oder Funktion' spGetNewCases ' expexts Parameter '@startdate', der nicht geliefert wurde. '(oder so) – Chains

+1

@Chains Vielen Dank! Es funktionierte! – Johnathan

Verwandte Themen