View Full Version : [C# - MSSQL]Chiarimenti connessione DB
RaouL_BennetH
09-09-2010, 15:16
Ciao a tutti :)
Per la prima volta, anzichè fare utilizzo di nhibernate, devo cimentarmi con la connessione ad un db che gira sotto sql server 2008 e scrivere le varie librerie con C#, avendo a disposizione il framework 3.5 e VS 2008.
Devo necessariamente seguire tutte le procedure automatiche offertemi da Visual Studio e confesso che già dai primi passi sono in difficoltà. Lo so... è assurdo che i wizard per me siano più complessi che fare il tutto from scratch.. :muro:
Ad ogni modo, la prima domanda che avrei da porvi è questa:
1) Quando aggiungo un nuovo data source da VS, vado su New Connection, scelgo come provider "Microsoft Sql Server Database File(SqlClient)
2) Mi chiede il nome del database, vado su Browse ed ovviamente intuisco che manca qualcosa....
Nel senso che:
Mi chiede un file .mdf. Non capisco quindi se devo, da sql server, creare, esportare o che altro il database che mi serve, oppure ... boh ?
Cioè, come funge la cosa ? Il file con il nome del db lo devo creare io e poi agganciarci l'istanza di sql server ?
grazie mille :)
RaouL.
Radeon89
09-09-2010, 15:26
Non vorrei ricordare male... Ma mi pare proprio che fosse come hai intuito tu. Prima crei il database, poi lo agganci a visual studio ;)
RaouL_BennetH
09-09-2010, 15:29
Non vorrei ricordare male... Ma mi pare proprio che fosse come hai intuito tu. Prima crei il database, poi lo agganci a visual studio ;)
Ciao :)
Ma io il database l'ho già creato. Faccio un esempio:
Su sql server il nome del database è dbtest.
Quando VS mi chiede il nome del file (con estensione .mdf) se inserisco a mano: dbtest.mdf mi dice che non esiste, se vado su browse, non ho idea di come raggiungere il database sotto l'istanza di sql server.
Radeon89
09-09-2010, 16:02
Dopo un po' di prove, forse ho capito... Prova a vedere se facendo "Browse" lo trovi in "C:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\Data"
astorcas
09-09-2010, 16:02
Ciao :)
Ma io il database l'ho già creato. Faccio un esempio:
Su sql server il nome del database è dbtest.
Quando VS mi chiede il nome del file (con estensione .mdf) se inserisco a mano: dbtest.mdf mi dice che non esiste, se vado su browse, non ho idea di come raggiungere il database sotto l'istanza di sql server.
provato con localhost?
RaouL_BennetH
09-09-2010, 16:08
Si, ma il problema era un altro :(
Leggo che se si lavora in locale, ci sono due possibilità:
Ci si collega all'istanza di sql server mediante una banale stringa di connessione, oppure si deve fare il detach dell'istanza in questione e copiarsi il file in un qualsiasi path. Questo perchè il nome del file non può essere lo stesso del nome del db dell'istanza, dato che si presuppone che poi questo benedetto file debba essere "attaccato" o ad una istanza locale o ad una remota.
Questo "problema" non si verifica invece con visual web developer, che vede direttamente tutte le istanze presenti dal pannello della connessione ai dati.
Radeon89
09-09-2010, 16:40
Ho ripreso in mano un mio vecchio progetto, e ho visto che si usa la stringa di connessione. Se il database è collegato a SQL Server, il comando per la stringa di connessione è string sConn = @"Data Source=nometuopc\SQLEXPRESS;Initial Catalog=dbProva;Integrated Security=True";
Da qualche parte ricordo ci fosse un campo da cui si poteva copiare ed incollare la stringa di connessione... Purtroppo non ricordo più dove fosse...
tomminno
09-09-2010, 17:01
Sei andato su Server Explorer e hai aggiunto la connessione al tuo dbms?
mamma mia che confusione anche quì....
Facciamo a capirci....
O utilizzi un file .mdf e sqlClient che punta direttamente al file fisico
O utilizzi un SqlServer e allora crei una connessione al database
Le due cose sono molto diverse e non c'entrano niente l'una con l'altra. Da quello che mi pare di intuire da come parli tu hai bisogno di prendere la seconda strada (anche perchè la prima è un pò una follia se stiamo parlando di una applicazione che hai intenzione di vendere a qualcuno) quindi:
Apri il tuo gestore di DataBase (che esso sia il management studio di sql o un altro non importa)
Crei il tuo db, le tue tabelle, le tue sp. ecc ecc
Apri vs 2008
Vai nel pannello server explorer
Tasto destro su Data Connection
Add new connection
Come dataSource scegli Sql Server
compili le info tipo nome server (istanza sql engine)
user, pessword, nome db
Dai ok e vedrai che nel server explorer apparirà la nuova connessione
Espandi e troverai le tue tabelle, sp , ecc ecc che puoi prendere e trascinare dentro il tuo dataset.
Tutto chiaro?
p.s. ovviamente nel app.config verrà creata una risorsa applicativa che altro non è che la tua connection string....
ovvio che se poi l'applicazione si deve poter spostare o legare ad altri db questa connection string la devi gestire dal programma.....
RaouL_BennetH
10-09-2010, 10:07
mamma mia che confusione anche quì....
Facciamo a capirci....
O utilizzi un file .mdf e sqlClient che punta direttamente al file fisico
O utilizzi un SqlServer e allora crei una connessione al database
Le due cose sono molto diverse e non c'entrano niente l'una con l'altra. Da quello che mi pare di intuire da come parli tu hai bisogno di prendere la seconda strada (anche perchè la prima è un pò una follia se stiamo parlando di una applicazione che hai intenzione di vendere a qualcuno) quindi:
Apri il tuo gestore di DataBase (che esso sia il management studio di sql o un altro non importa)
Crei il tuo db, le tue tabelle, le tue sp. ecc ecc
Apri vs 2008
Vai nel pannello server explorer
Tasto destro su Data Connection
Add new connection
Come dataSource scegli Sql Server
compili le info tipo nome server (istanza sql engine)
user, pessword, nome db
Dai ok e vedrai che nel server explorer apparirà la nuova connessione
Espandi e troverai le tue tabelle, sp , ecc ecc che puoi prendere e trascinare dentro il tuo dataset.
Tutto chiaro?
Si, se non fosse che nella lista data source ho soltanto:
Microsoft Access Database File
Microsoft SQL Server Compact 3.5
Microsoft SQL Server Database File
E se scelgo l'ultima voce, mi riporta alla scelta di un file e non ho modo di impostare parametri come nomedb, user, passwd :(
tomminno
10-09-2010, 10:25
Si, se non fosse che nella lista data source ho soltanto:
Microsoft Access Database File
Microsoft SQL Server Compact 3.5
Microsoft SQL Server Database File
E se scelgo l'ultima voce, mi riporta alla scelta di un file e non ho modo di impostare parametri come nomedb, user, passwd :(
Ma nella lista datasource di quale classe?
Se usi un SqlDataSource dovrebbe farti scegliere un server inserito in Server Explorer.
RaouL_BennetH
10-09-2010, 10:31
Ma nella lista datasource di quale classe?
Se usi un SqlDataSource dovrebbe farti scegliere un server inserito in Server Explorer.
Il fatto è che non ho proprio il pannello Server Explorer. Mi sa che qualcosa durante l'installazione non è andato a buon fine. A scanso di equivoci dico già che non è una versione express.
tomminno
10-09-2010, 11:34
Il fatto è che non ho proprio il pannello Server Explorer. Mi sa che qualcosa durante l'installazione non è andato a buon fine. A scanso di equivoci dico già che non è una versione express.
Menu View->Server Explorer?
RaouL_BennetH
10-09-2010, 14:22
Menu View->Server Explorer?
No :( è proprio assente e neanche via scelta rapida si apre. Sto reinstallando perchè sono certo che qualcosa sia andato storto durante l'installazione.
RaouL_BennetH
10-09-2010, 15:25
Tutto risolto con la reinstallazione . Boh, non mi era mai successa una cosa del genere e anche durante la prima installazione non mi aveva dato nessun warning o errore... cmq, meglio così ora tutto funziona a dovere.
A proposito, non avevo mai visto LinQ to Entity. Sono dieci minuti che ci "giochicchio" e me ne sono già innamorato !!
e direi.... meglio di linq non c'è nulla.... eheheheh....
cmq a me una volta era sparito il dataset designer.... quindi non preoccuparti, purtroppo a volte capita
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.