6237 asp dbconnection
From Teknologisk videncenter
db connection
For at kunne tilgå en database skal du anvende en connection string.
Den finder du ved at vælge din database og kigge på properties.
[[File:asp_dbconnection2pic1.png";>
Her efter følger en del kode.
Først en pc klasse. Bemærk at klassen arver fra PC Controller
public class Pc : PcCtrl
{
private int id;
public int Id
{
get { return id; }
}
private string bruger;
public string Bruger
{
get { return bruger; }
set { bruger = value; }
}
private string os;
public string Os
{
get { return os; }
set { os = value; }
}
private int pcNr;
public int PcNr
{
get { return pcNr; }
set { pcNr = value; }
}
public Pc(int id, string bruger, string os, int pcNr)
{
this.id = id;
this.bruger = bruger;
this.os = os;
this.pcNr = pcNr;
}
public Pc()
{ }
}
Der efter en PCcontroller. Bemærk at klassen arver fra Controller
public class PcCtrl : Ctrl
{
public List<Pc> getPcAll()
{
List<Pc> returnLst = new List<Pc>();
List<Object[]> lst = sendSql("select * from pcer");
foreach (Object[] o in lst)
{
returnLst.Add(new Pc(((int)o[0]),((string)o[1]),((string)o[2]),((int)o[3])));
}
return returnLst;
}
}
Tilsidst controller klassen. Det er i denne klasse der oprettes forbindelse til databasen. Bemærk også at du her skal sætte din connection string ind.
public class Ctrl
{
protected List<Object[]> sendSql(String sqlString)
{
//Opret et dictionary vi kan returnerer data i
List<Object[]> returnValue = new List<Object[]>();
//Indsæt din connection string fra database properties
string conStr = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\orso\Documents\mytestdb.mdf;Integrated Security=True;Connect Timeout=30";
//Opret en connetion og åben
SqlConnection connection = new SqlConnection(conStr);
connection.Open(); //here it gives the exception
//Opret en sql command og knyt den til din connection, indsæt også sqlString som vi fik i parametre
System.Data.Common.DbCommand cmd = connection.CreateCommand();
cmd.CommandText = sqlString;
cmd.Connection = connection;
//Udfør sql command og læg resultatet i DbDataReader
System.Data.Common.DbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Object[] row = new Object[reader.FieldCount];
for (int i = 0; i < reader.FieldCount; i++)
{
row[i] = reader.GetValue(i);
}
returnValue.Add(row);
}
connection.Close();
return returnValue;
}
}