Stringa di connessione

mercoledì 25 luglio 2007 - 15.49

flytouch Profilo | Junior Member

Arieccomi con le mie domande....., volevo chiedervi io in questo momento sto lavorando in locale con SQL Express 2005 e utilizzo questa stringa di connessione:

conn = New SqlConnection("Data Source=.\SQLEXPRESS; Initial Catalog=Cap; Integrated Security= SSPI;")

a questo punto mi domando ma una volta che lo sbatto sul server sia db che codice, la stringa come la dovro' modificare per rendere funzionate anche sul server? Scusate l'ignoranza.
Grazie in advance

amelix Profilo | Expert

Dipende dal server...
Se hai Aruba... non ci riesci!

A.
Andrea - http://www.MelisWeb.eu/

Gioca con :
Travian - http://www.travian3.it/?uc=it31_3933
BiteFight - http://s2.bitefight.it/c.php?uid=58171

SSUPERPIPPO Profilo | Guru

Con cosa sviluppi la tua applicazione?
Vb.net?

flytouch Profilo | Junior Member

Si asp.net con vb.net utilizzo ancora il framework 1.1 anche se ho il 2 e tutto il resto
scusate inoltre cosa significa questo errore? lo incollo come me lo passa il try

Il nome "pippo" non è consentito in questo contesto. È possibile utilizzare solo costanti, espressioni costanti e (in alcuni contesti) variabili. I nomi di colonna non sono consentiti.
Insert into Abbonati (ragionesociale,nome,cognome,indirizzo,cAp,comune,pv,partitaiva,telefono,EmailAbbonato,dtcandidatura) Values (pippo,enzo,pippolo,fddfdfd,15011,aless,al,0124574558,012454,info@info,25/07/2007)
sto sbagliando l'immissione o sbagliato nella tabella?
scusatemi

SSUPERPIPPO Profilo | Guru

>Insert into Abbonati (ragionesociale,nome,cognome,indirizzo,cAp,comune,pv,partitaiva,telefono,EmailAbbonato,dtcandidatura) >Values (pippo,enzo,pippolo,fddfdfd,15011,aless,al,0124574558,012454,info@info,25/07/2007)

I valori stringa vanno racchiusi tra apici, solo i valori dei campi numerici vanno inseriti senza apici. L'insert sarà quindi questa.

Insert into Abbonati (ragionesociale,nome,cognome,indirizzo,cAp,comune,pv,partitaiva,telefono,EmailAbbonato,dtcandidatura) Values ('pippo','enzo','pippolo','fddfdfd',15011,'aless','al',0124574558,012454,'info@info','25/07/2007')

Ciao

Ale

flytouch Profilo | Junior Member

Anche se concateno una stringa devo mettere gli apici? seguendo la insert dopo values ('+ragionesociale+'... etc etc ?
Intanto grazie

SSUPERPIPPO Profilo | Guru

Ti consiglio di utilizzare i parametri per creare la tua Select, è più performante e anche più sicuro... non devi poi porti i problemi degli apici...

Un esempio di come utilizzare i parametri:

' Stabilisco la connessione

Dim MyConnection As New SqlConnection("...")

' Qui definisci la tua stringa Sql parametrica (i parametri sono contrassegnati dal simbolo @)

Dim SqlCmd As New SqlCommand(="Insert into Abbonati ragionesociale,nome,cognome...) Values (@ragsoc,@nome,@cognome...), MyConnection)

' Qui valorizzi i parametri e ne definisci il tipo

SqlCmd.Parameters.Add("@ragsoc", SqlDbType.VarChar, 50).Value = StrRagSoc
SqlCmd.Parameters.Add("@nome", SqlDbType.VarChar, 50).Value = StrNome
SqlCmd.Parameters.Add("@cognome", SqlDbType.VarChar, 50).Value = StrCognome

SqlCmd.ExecuteNonQuery

' Dove Strragsoc, StrNome, StrCognome sono le variabili che contengono il valore del parametro (può essere anche un riferimento ad una proprietà, es. me.txtragsoc.text)

Prova, se hai bisogno di ulteriori chiarimenti sono a disposizione

Ciao

Alessandro

flytouch Profilo | Junior Member

Grazie Alessandro, sto rincretinedno adesso mi da questo errore te lo incollo dal Try:
I dati di tipo string o binary verrebbero troncati etc etc
provo adesso a farlo con i parametri come dici tu e spero di non doverti piu rompere le palle :D
grazie ancora

SSUPERPIPPO Profilo | Guru

Nessun disturbo,

fammi sapere se hai risolto.

Ciao

Alessandro

flytouch Profilo | Junior Member

Alessandro ho usato i parametri, in effetti piu semplice per il controllo del flusso dei dati su come vengono inseriti, cioe capisci al volo dove cappelli in pratica.
Ascolta il datetime ti carica anche l'ora, se devi fare delle verifiche l'ora non dovrebbe rompere le scatole giusto? tipo data entrata < data uscita cose di questo tipo.

PS
Non chiudo il post perche 1° non hai risposto alla domanda principale, 2° perche cosi ti posso ancora rompere le scatole su questri argomentini

SSUPERPIPPO Profilo | Guru

Scusami ma avevo perso di vista la domanda principale.

Per far funzionare il database su un server, io di solito faccio così:
faccio un backup del database dal pc locale ed eseguo un restore sul pc Server (io di solito lo faccio con SQL Server Management Studio Express).

La stringa di connessione và ovviamente modificata impostando come datasource il nome del server:

conn = New SqlConnection("Data Source=NOMESERVER\SQLEXPRESS; Initial Catalog=Cap; Integrated Security= SSPI;")

Prova e fammi sapere se funziona.

Per quanto riguarda i campi DateTime ti confermo che non ci sono problemi nel fare confronti tra date.

Ciao

Alessandro

P.S.: Rompi pure quanto vuoi...

flytouch Profilo | Junior Member

Alessandro arieccomi, :( senti ieroi con i parametri ho fatto la mia bella Insert e funzionava, oggi che avevo necessita di altre cose ho fatto una altra insert e mi e tornato questo valore d'errore dal Try:
L'istruzione INSERT è in conflitto con il vincolo FOREIGN KEY "FK_Abbonati_Zona". Il conflitto si è verificato nella tabella "dbo.Zona", column 'IDcAp' del database "capello". L'istruzione è stata interrotta.
Mi domando ma se il campo in relazione ammette i null perche deve rompere le scatole?
Scusami ancora

SSUPERPIPPO Profilo | Guru

Sembrerebbe che tu abbia violato le regole di integrità referenziale.

L’applicazione dell'integrità referenziale assicura che le relazioni definite tra le tabelle non possano essere violate.
Essa coinvolge due tabelle: una referenced table (tabella referenziata) che contiene la PRIMARY KEY (PK) e una referencing table (tabella referenziante) che si lega ad essa attraverso una FOREIGN KEY (FK).
Più precisamente, la FK può far riferimento ad una o più colonne su cui è definito un vincolo di unicità (UNIQUE CONSTRAINT), ed in ogni caso occorre che il tipo di dato delle colonne in relazione sia identico (fatta eccezione per l’attributo di [NOT] NULL).

Questa è la regola generale, prova a verificare che i dati che hai tentato di inserire non violini questa regola.

Ciao

Alessandro

flytouch Profilo | Junior Member

Si e' come dici tu, perche ho sbagliato a referenziare la seconda tabella, infatti un campo che avevo settato come unique mi ha accettato solo una insert, la seconda mi ha dato errore come ti ho incollato nel precedente post, togliendo questo vincolo le insert continuano a funzionare, non ho capito quindi come posso rendere un campo con duplicati non ammessi perche senno uso i datarow e gli dico guarda che se sto valore e gia stato immesso allora fai che o updatarlo o lascia perdere, perche altrimenti non capisco proprio come cazzarola fare per renderlo con i duplicati non ammessi. Tra l'altro, per precisare, le relazioni funzionano pero quando ho aggiunto quella univocita' la seconda volta che ho aperto il management tool non me lo faceva piu vedere nell'indice la regola dell'unique.
Se ti viene in mente qualcosa....
Intanto grazie
e Ciao
Enzo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5