Also, wir haben diesen Code, der aus irgendeinem Grund das Timing aushält. Es ist nicht die gespeicherte Prozedur, die ausgeführt wird, da das ordnungsgemäß ausgeführt wird. Wenn wir den Parameter aus dem C# -Code entfernen, wird der Code ausgeführt. Der Parameter bricht immer wieder ab (was zu einem Timeout führt) und wir können nicht herausfinden warum.Code hält das Timing aus
C#:
public static PTWViewList GetList(int studynumber)
{
PTWViewList tempList = new PTWViewList();
using (SqlConnection myConnection = new SqlConnection(AppConfiguration.cnARDB))
{
string spName = "ardb.PTWViewSelect";
SqlCommand myCommand = new SqlCommand(spName, myConnection);
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.Parameters.AddWithValue("@study", studynumber);
myConnection.Open();
using (NullableDataReader myReader = new NullableDataReader(myCommand.ExecuteReader())) /*this is where the code times out*/
{
tempList = new PTWViewList();
while (myReader.Read())
{
tempList.Add(FillDataRecord(myReader));
}
myReader.Close();
}
}
tempList.ListCount = tempList.Count;
return tempList;
}
gespeicherte Prozedur:
CREATE PROCEDURE [ardb].[PTWViewSelect]
@studynumber int = NULL,
@quoteid uniqueidentifier = NULL,
@lineitemid uniqueidentifier = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT
[Study]
,[LineItemID]
,[QuoteID]
,[Total]
,[COOP]
,[VendorCost]
,[CustCost]
,[LineItemNumber]
,[StudyTypeCode]
,[GroupLeader]
,[PTWDate]
,[PONumber]
,[POStatus]
,[StudyDirector]
,[SL_DESC_L]
,[SL_Code]
,ProjectDescription
,CreatedBy
,chARProcess
,CODate
FROM
[ARDB].[dbo].[PTWView]
WHERE
(@studynumber is null or [email protected])
AND (@quoteid is null or [email protected])
AND (@lineitemid is null or LineItemID = @lineitemid)
END
Wenn Sie die Parameter zurück und SQL startet Zeitlimit, würde ich sagen, Sie haben ein Problem mit Ihrer Datenbank. Haben Sie die relevanten Spalten indiziert? – Oded
Was passiert, wenn Sie "PTWViewSelect 4711" in SQL Server Management Studio ausführen? –
@jonas wird es gut funktionieren – DForck42