Connessione a serversql

mercoledì 07 maggio 2008 - 11.23

mame37 Profilo | Junior Member

Buon giorno a tutti devo creare un collegamento a un server sql con in c# avendo come dati l'ip del server il nome del database l'user e la psw nonchè la tabella a cui dovrò aggiungere i dati. non so come poter creare una connessione con il server. ho provato con sqlConnection ma non so dove inserire i dati di autenticazione. potete darmi un aiuto grazie! a tutti

Lucifel Profilo | Junior Member

In questa pagina ci sono tutte le stringhe di connessione possibili. Sicuramente c'è anche quella che serve a te.

www.connectionstrings.com

Per quanto riguarda la tabella... prima apri la connessione (di norma io scrivo la stringa di connessione sul file di configurazione) con la stringa e con SqlConnection e poi tramite SqlCommand faccio l'execute della query.

Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------

mame37 Profilo | Junior Member

grazie mille x l'aiuto ci sono riuscito sono entrato nel server del database adesso devo andare a lavorare all'interno di una tabella di questo server e sostituire i valori presenti con quelli che devo inserire io. le colonne della table del db di cui devo sostituire la table sono "nome casella" e "pwd"..sapete darmi qualche consiglio su come fare? grazie x eventuali risp
io ho prensato
sql = insert into nometabella (some casella,pwd) values (+campo1,+campo2);
secondo voi va bene?

Lucifel Profilo | Junior Member

Non ho capito cosa vuoi fare.
Vuoi SOSTITUIRE il valore presente con il tuo o vuoi SOMMARE il valore presente con il tuo?
Perchè la query che hai fatto serve a INSERIRE un nuovo record alla fine della tabella. Se vuoi sommare devi usare un'altro metodo:

--Estrai i 2 valori
SELECT val1, val2
FROM tabella
WHERE <condizione>

--Sommi
val1 = val1 + mio valore 1
val2 = val2 + mio valore 2

--Sostituisci
UPDATE tabella
SET
Nome_Colonna1 = val1,
Nome_Colonna2 = val2,
WHERE <condizione> (condizione è uguale a quella che hai usato per estrarre i valori)

Tutto chiaro?
Se invece vuoi solo sostituire i valori eviti di estrarli prima.

Io farei così.



Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------

mame37 Profilo | Junior Member

Ti spiego meglio io devo sostituire i valori della tabella presente sul db con i miei che ho estratto da un'altra tabella presente nel mio hd. Con un ciclo foreach ho estratto solo di dati che mi interessavanodalla mia tabella origine per poi doverli inserire nella tabella del db..ho fatto questo

foreach (string var in riga)

{
string[] val_riga = var.Split(',');
string campo1 = val_riga[0] + "@prova.it";
string campo2 = val_riga[1];
string campo3 = val_riga[2];
string campo4 = val_riga[3];
Console.WriteLine (campo1);

adesso quello che devo fare è inserire il campo1 e il campo 4 nella colonna user e psw della tabella del db. che mi consigli?
devo fare un'altro cisclo per farli inserire tutti nella tabella del db?

Lucifel Profilo | Junior Member

>Ti spiego meglio io devo sostituire i valori della tabella presente
>sul db con i miei che ho estratto da un'altra tabella presente
>nel mio hd. Con un ciclo foreach ho estratto solo di dati che
>mi interessavanodalla mia tabella origine per poi doverli inserire
>nella tabella del db..ho fatto questo
>
>foreach (string var in riga)
>
> {
> string[] val_riga = var.Split(',');
>string campo1 = val_riga[0] + "@prova.it";
> string campo2 = val_riga[1];
> string campo3 = val_riga[2];
> string campo4 = val_riga[3];
> Console.WriteLine (campo1);
>
>adesso quello che devo fare è inserire il campo1 e il campo 4
>nella colonna user e psw della tabella del db. che mi consigli?
>devo fare un'altro cisclo per farli inserire tutti nella tabella
>del db?

Non puoi usare l'insert, perché l'insert ti AGGIUNGE nuove righe alla tabella. Devi usare l'update. Ho capito che devi mettere campo 1 e campo 4 nella tabella, ma devi inserirla su tutte le righe o solo su determinare righe?

Devi usare l'update che ti ho messo prima. Se usi non usi il WHERE inserisci in tutte le righe

Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------

mame37 Profilo | Junior Member

Se guardi il ciclo al campo 1 gli viene aggiunto @... mentre il campo 4 rimane inviariato io devo inserire tutti questi valori nella tabella per tutte le righe della tabella. nella tabella del db dovrebbe apparire
nome utente psw
..1@..it ps1
..2@..it ps2
..3@..it ps3
..
per tutti i dati che elaboro.. in poche parole vado a riempire tutta la tabella

Lucifel Profilo | Junior Member

>Se guardi il ciclo al campo 1 gli viene aggiunto @... mentre
>il campo 4 rimane inviariato io devo inserire tutti questi valori
>nella tabella per tutte le righe della tabella. nella tabella
>del db dovrebbe apparire
>nome utente psw
>..1@..it ps1
>..2@..it ps2
>..3@..it ps3
>..
>per tutti i dati che elaboro.. in poche parole vado a riempire
>tutta la tabella

E allora fai un semplice update

UDATE tabella
SET
campo1 = valore1
campo4 = valore4

dove valore1 è quello che hai modificato e valore4 è la tua password

Ricorda che ti cambia tutti i valori di quelle colonne di tutte le righe della tabella

Se è questo che ti serve...

Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------

mame37 Profilo | Junior Member

un'ultima cosa se guardi il mio ciclo foreach mi parte dalla prima riga della mia tabella quindi mi scrive anche l'intestazione cosa che io nn vorrei..quindi vorrei partire a sostituire dal secondo valore
usurname,pass,nome,cognome
pinco,xxx,xxxx,xxxxx
io vorrei che iniziasse dalla seconda linea ovvero da pinco..

Lucifel Profilo | Junior Member

Non riesco a capirti.
Le "riga" cosa sono? da dove le hai estratte???
Se è una query da db non dovresti avere l'intestazione.

Da quello che vedo immagino che riga è fatto così:

a1,b1,c1,d1
a2,b2,c2,d2
...

quindi l'unico modo per evitare di leggere la prima riga di questa cosa (che penso sia una datatable) devi usare un semplice ciclo for

for (int i = 1; i < riga.Count; i++)
{
string[] val_riga = riga[i].Split(',');
...
}

Nota che i parte da 1 e non da 0

Dentro il tuo var è sostituito da riga[i]

Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------

mame37 Profilo | Junior Member

ho provato a fare come mi hai detto ma continua a prendere i dati dalla prima linea..io prendo i dati da uan tabella .csv composto da 5 colonne io mi sono separato splittando le varie colonne così da poterle separare come vedi ho fatto un ciclo forech per estrarre tutte le righe..
questo è il contenuto del file .csv
username,first name,last name,password
grup1,grup1,grup1,password,grup2
grup2,grup2,grup2,password,grup2
io come vedi alla colonna 1 ho inserito la @..it
il mio problema che nel mio ciclo come primo valore ho usurname@...it mentre non ci dovrebbe essere..ma iniziare con grup1@...it
potresti aiutarmi utilizzando il mio programma perchè non sono esperto e non so riadattarle..grazie ancora scusa il disturbo

Lucifel Profilo | Junior Member

come hai estratto i dati dal csv?
Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------

mame37 Profilo | Junior Member

con questa
string[] riga = System.IO.File.ReadAllLines(@"C:\.....................csv");

Lucifel Profilo | Junior Member

quindi hai un array di stringe...

sicuro che questa sintassi non funzioni?

for (int i = 1; i < riga.Lenght; i++) { }

Mi sembra corretta... alla fine hai un array di n elementi...

Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------

mame37 Profilo | Junior Member

adesso funziona grazie mille!

Lucifel Profilo | Junior Member

Figurati,
ciao

Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------
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