Vet inte heller. Men jag har en klass med en publik metod och en sql-sträng som parameter som returnerar ett DataSet. På så sätt har jag databaskopplingssträngen bara på ett ställe. Fast jag vet inte om det är rätt, ej heller om det är bra?
Bygg upp med klasser och komponenter, så slipper ni fundera på såna här värdsliga saker. ;)
Seriöst, ni får en bättre struktur samtidigt som er applikation blir skalbar och enklare att förstå. Bygg gärna upp den med templates också, för att skilja HTML från .NET.
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web;
namespace blabla
{
public class Database
{
public static DataSet GetDataSet(string Sql)
{
DataSet DS = new DataSet();
string connectionString = "Server=servername;Database=databasename;UID=loginid;PWD=password;";
SqlConnection myConnection = new SqlConnection(connectionString);
SqlDataAdapter myDataAdapter = new SqlDataAdapter(Sql, myConnection);
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet);
return myDataSet;
}
}
}
Nä, lägg den i global.asax och spar conn-strängen i en application variabel.
Oftast är inte urvecklingsburk och slutinstallationsburk samma, dvs, man kommer att behöva byta både lösen, server-namn (ip) etc.
Sub Application_OnStart
Application.Lock
Application["ConnString"] = "server=(local)\\NetSDK;database=pubs;Trusted_Connection=yes";
Application.Unlock
End Sub
sedan när du ska använda dig av den:
Dim objConn As New SqlConnection(Application["ConnString"])
jo,men jag skulle aldrig hårdkoda in en connsträng i en klass, blir inte skalbart eftersom den strängen är den enda som kan använda klassen. Bygger man in conn-strängen somett argument eller som egenskap i klassen blir den mycket mer skalbar
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web;
namespace blabla
{
public class Database
{
public static DataSet GetDataSet(string Sql, String ConnString)
{
DataSet DS = new DataSet();
SqlConnection myConnection = new SqlConnection(ConnString);
SqlDataAdapter myDataAdapter = new SqlDataAdapter(Sql, myConnection);
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet);
return myDataSet;
}
}
}