Jag har funderat men kommer inte på det. Nu är ju detta vb.net men jag brukar göra så här: [Gör vanliga dataaccesser i vb.net] Du bör inte hålla en databas koppling öppen under längre tid, dvs ha en global instans som återanvänds. Istället bör du öppna en connection när du måste och sedan stänga den så snabbt som möjligt, detta för att inte låsa resurser på databas servern. Hej Matias. Att skapa en hjälp klass som innehåller static metoder (Shared i VB.NET) är det sätt som jag skulle rekommendera för databas hantering, precis som det exempel Trash skickade.Global connection till SQL Server2000
Eftersom mitt project kommer att innehålla ganska så många formulär, så skulle jag vilja ha min SQL-connection "global", alltså i en egen class-fil.
I dag så gör jag så här:
<code>
using System.Data;
using System.Data.OleDb;
private OleDbConnection con;
private OleDbDataAdapter da;
private OleDbDataAdapter da1;
private DataSet ds;
private DataSet ds1;
//
// TODO: Add any constructor code after InitializeComponent call
//
string CONstring = "Provider=sqloledb;Server=sawdata;Database=Melodi;Trusted_Connection=yes";
con = new OleDbConnection(CONstring);
</code>
Och kopplar sedan:
<code>
string SQLstring ="SELECT Album FROM t_Album ORDER BY Album";
da1 = new OleDbDataAdapter(SQLstring, con);
//osv
</code>
Men hur bör jag göra för att på ett bra sätt återanvända(el classfil)?
Tacksam för all hjälp.Sv: Global connection till SQL Server2000
Sv: Global connection till SQL Server2000
Om du är orolig för prestanda så ska du inte vara det! .NET använder automatiskt connection pooling mot SQL Server vilket (lite förenklat) innebär att efter att du en gång har öppnat en connection så kommer nästa uppkoppling ske mycket snabbt.
Det exempel som Trash refererar ovan är ett exempel på hur man kan åstadkomma detta utan alltför mycket jobb. Jag tyckte bara det saknades motivering till varför man ska göra som han föreslår...
Ett annat exempel på detta är Data Access Building Block på MSDN (http://msdn.microsoft.com/library/en-us/dnbda/html/daab-rm.asp). Den är iofs lite mer komplicerad.
/MattiasSv: Global connection till SQL Server2000
Jomenvisst så förstår jag vidden av att ha connections öppen så kort stund som möjligt.
Vad jag letade efter var någonting som jag gjorde i VB6, men jag kan inte få ihop det i C#.
Jag hadde en modul, där allting låg, betr connections till SQL Servern.
Variabler osv. Sen var jag naturligtvis väldigt noga med att stänga snappt efter mig.
Som det nu är, så blir jag ju tvungen att skriva samma kod många gånger, och ha refferens i varje form. Det är det som är kärnan, om man kan undvika detta.Sv: Global connection till SQL Server2000
Eftersom man i C#/.NET inte kan ha globala metoder, en metod måste ligga i en klass, så kan du inte göra precis som i VB6. Men genom att använda statiska metoder i en klass så kan du få samma beteende. Om du har en klass som heter SqlHelper så kan koden bli typ som nedan:
<code>SqlConnection cn = SqlHelper.CreateConnection();</code>
Du kan återanvända Trash VB.NET klass på två vis. Antingen översätta till C# (om man vill ha allt i samma språk) eller skapa ett VB.NET projekt i samma solution och lägga in hans kod däri.
/Mattias