FAQ |
Kalender |
|
![]() |
#1 | ||
|
|||
Klarade millennium-buggen
|
Jag skulle också rekommendera att skriva om det till en SP som du skickar in värdena till, det blir bättre struktur och snabbare exekvering jämfört med denna dynamiska SQL-sats.
Använd ADO.NET och parameteriserad ADO/SQL så du omöjliggör SQL-Injections när du ändå fixar till koden. https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx Kod:
// C# OleDbCommand command = new OleDbCommand("SampleProc", connection); command.CommandType = CommandType.StoredProcedure; OleDbParameter parameter = command.Parameters.Add( "RETURN_VALUE", OleDbType.Integer); parameter.Direction = ParameterDirection.ReturnValue; parameter = command.Parameters.Add( "@InputParm", OleDbType.VarChar, 12); parameter.Value = "Sample Value"; parameter = command.Parameters.Add( "@OutputParm", OleDbType.VarChar, 28); parameter.Direction = ParameterDirection.Output; För att skapa en Stored Procedure i MS SQL-Server se här: https://msdn.microsoft.com/en-us/library/ms345415.aspx Kod:
-- Skapa en SP USE AdventureWorks2012; GO CREATE PROCEDURE HumanResources.uspGetEmployeesTest2 @LastName nvarchar(50), @FirstName nvarchar(50) AS SET NOCOUNT ON; SELECT FirstName, LastName, Department FROM HumanResources.vEmployeeDepartmentHistory WHERE FirstName = @FirstName AND LastName = @LastName AND EndDate IS NULL; GO Kod:
-- Anropa en SP för att testa EXECUTE HumanResources.uspGetEmployeesTest2 N'Ackerman', N'Pilar'; -- Or EXEC HumanResources.uspGetEmployeesTest2 @LastName = N'Ackerman', @FirstName = N'Pilar'; GO -- Or EXECUTE HumanResources.uspGetEmployeesTest2 @FirstName = N'Pilar', @LastName = N'Ackerman'; GO Senast redigerad av Conny Westh den 2015-10-28 klockan 16:57 |
||
![]() |
![]() |
Svara |
|
|