Setările parametrilor și tipurile de parametri de date

Obiectele de comandă utilizează parametrii pentru a transmite valori expresiilor SQL sau procedurilor stocate, oferind verificarea tipului și validitatea. Spre deosebire de textul de comandă, parametrii de intrare sunt tratați ca valori ale literelor, nu ca cod executabil. Acest lucru ajută la protejarea împotriva atacurilor prin injectarea codului SQL, în care un atacator introduce o comandă în instrucțiunea SQL care pune în pericol securitatea serverului.







Comenzile parametrice vă permit, de asemenea, să îmbunătățiți performanța atunci când efectuați o interogare, deoarece atunci când le utilizați, serverul de bază de date poate cartona cu precizie comanda recepționată în planul corect de interogare memorat în cache. Pentru mai multe informații, consultați Caching și reutilizarea planului de implementare și reutilizarea opțiunilor online și a planului de implementare a cărților SQL Server. Pe lângă îmbunătățirea securității și performanței, comenzile parametrate oferă o modalitate convenabilă de a organiza valorile transmise sursei de date.

Puteți crea un obiect DbParameter utilizând un constructor sau adăugându-l în colecția DbParameterCollection utilizând metoda de adăugare a colecției DbParameterCollection. Metoda Adăugare acceptă fie argumentele pentru constructor, fie obiectul parametru existent ca intrare, în funcție de furnizorul de date.

Informațiile despre parametri pot fi derivate din procedura stocată utilizând clasa DbCommandBuilder. Ambele clase, SqlCommandBuilder și OleDbCommandBuilder. oferă o metodă statică pentru DeriveParameters. care umple automat o colecție de parametri pentru obiectul de comandă care utilizează informațiile parametrilor din procedura stocată. Rețineți că metoda DeriveParameters suprascrie informații despre parametrii existenți pentru comandă.

Afișarea informațiilor despre parametri reduce performanța, deoarece acest lucru necesită schimb de date suplimentar cu sursa de date. Dacă informațiile de parametru sunt cunoscute la momentul proiectării, puteți crește performanța aplicațiilor prin setarea explicită a parametrilor.







Procedurile stocate oferă numeroase avantaje în aplicațiile bazate pe date. Utilizarea operațiilor de baze de date proceduri stocate pot fi încapsulate într-o singură comandă care este optimizat pentru performanță și după îmbunătățirea siguranței. Cu toate că procedurile stocate pot apela și de a folosi instrucțiunea SQL, indicând numele procedurii și argumentele sale, de colectare a utiliza parametrii de obiect ADO.NET DbCommand permite definirea mai explicit parametrii procedurii, precum și accesul la parametrii de ieșire și de a reveni valori.

Instrucțiunile parametrice sunt executate pe server utilizând procedura stocată sp_executesql, care vă permite să reutilizați planurile de interogare. Cursanții sau variabilele locale din pachetul sp_executesql nu sunt disponibile pachetului numit sp_executesql. Modificările în baza de date durează numai până la finalizarea executării instrucțiunii sp_executesql. Pentru mai multe informații, consultați SQL Server Books Online.

Dacă parametrii sunt utilizați cu obiectul SqlCommand pentru a executa o procedură stocată SQL Server, atunci numele parametrilor care sunt adăugați la colecția Parameters. trebuie să se potrivească cu numele marcajelor de parametru în procedura stocată. Furnizorul de date din .NET Framework pentru SQL Server nu acceptă substituentul (?) Pentru transmiterea parametrilor în instrucțiunile SQL și procedurile stocate. Procesează parametrii într-o procedură stocată ca parametri numiți și caută markerii parametrilor corespunzători. De exemplu, procedura stocată CustOrderHist este definită utilizând parametrul @CustomerID. Când programul execută această procedură memorată, trebuie să utilizeze și parametrul @CustomerID.

Dacă parametrii sunt utilizați cu obiectele OleDbCommand sau OdbcCommand, ordinea parametrilor adăugați la colecția Parameters. trebuie să se potrivească cu ordinea parametrilor specificați în procedura stocată. Furnizorul de date din .NET Framework pentru OLE DB și Furnizorul de date .NET Framework pentru ODBC procesează parametrii din procedura stocată ca locașuri și aplică valorile parametrilor în ordinea corectă. În plus, parametrii valorii returnate trebuie să fie primii parametri care trebuie adăugați la colecția Parametri.

Furnizorul de date .NET Framework pentru OLE DB și Furnizorul de date .NET Framework pentru ODBC nu acceptă parametrii numiți pentru parcurgerea parametrilor declarațiilor SQL și procedurilor stocate. În acest caz, trebuie să utilizați substituentul (?), Ca în exemplul următor.

Ca rezultat, ordinea adăugării obiectelor Parametru la colecția Parametri trebuie să se potrivească strict cu poziția substituentului de parametru (?).

Afișare: Mijlocit protejat

Această pagină a fost utila? Da, nu

Au rămas 1500 de caractere

Mulțumesc! Vă mulțumim pentru feedbackul dvs. Opinia dvs. este foarte importantă pentru noi.

Centre de dezvoltare

comunitate

Contactați-ne







Articole similare

Trimiteți-le prietenilor: