Victor, la soluzione CON SQL SERVER piu' semplice sono I PARAMETRI con le stored procedures.
Ti devi mettere in testa che per fare cose semplici devi passare per cose piu' complicate, solo per un'ora. La semplificazione delle cose, nella programmazione, viene dal lavoro preventivo e fatto UNA SOLA VOLTA. La OOP serve proprio a questo, alla semplificazione progressiva.
Ti linko un estratto MOLTO SEMPLIFICATO dal layer che uso per gestire il DB, puoi usarlo, è semplice.
(l'originale fa molto altro, transazioni, log4net, gestione della Retry etc)
http://bit.ly/2erUUI4
(mettilo in un file C#, cosi' passi ad un linguaggio piu' competitivo dal punto di vista del mercato)
Esempio d'uso:
STORED:
codice:SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE INSERISCI_RECORD @p1 VARCHAR(100), @p2 INT, @p3 VARCHAR(100) AS BEGIN SET NOCOUNT ON; INSERT INTO tabella (colonna1, colonna2, colonna3) VALUES (@p1, @p2, @p3) return @@error END GO
PASSO 1
nel Web.Config metti semplicemente la connectionString come da prassi:
codice:<connectionStrings> <add name="strconnDatabase" connectionString ="Data Source=NOME_SERVER; User Id=XXXXX; Password=XXXXX; Initial Catalog=NOME_DATABASE; Pooling=true;" /> </connectionStrings>
PASSO 2
nel tuo file C# (dopo aver compilato il progetto con la tua classe presa dal file linkato), scrivi:
codice:using System.Data.SqlClient; // ... altro codice DatabaseLibrary db = new DatabaseLibrary(); // Parametri SqlParameter p1 = new SqlParameter("@nometuoparametro1", SqlDbType.VarChar, 100); p1.Value = "pippo"; SqlParameter p2 = new SqlParameter("@nometuoparametro2", SqlDbType.Int); p2.Value = 2; SqlParameter p3 = new SqlParameter("@nometuoparametro3", SqlDbType.VarChar, 100); p3.Value = "pluto"; SqlParameter[] parametri = { p1, p2, p3 }; try { int retValue = db.ExecStored("NOME_DATABASE", "INSERISCI_RECORD", parametri); } catch (Exception ex) { throw ex; }
e sara' eseguita la insert.
PS: se usi questo metodo, a meno di non modificarlo, ricordati di inserire sempre return @@error
alla fine delle tue stored altrimenti non funziona. Il metodo ExecStored torna L'ERRORCODE della stored.
Se vuoi ti ri-posto tutto in VISUAL BASIC. E se vuoi (dopo che hai fatto dimestichezza con questo) ti posto il namespace completo, e' un piccolo progetto che condivido spesso e che e' in continuo sviluppo.

Rispondi quotando
Ci vuole tanta pazienza.
