Sei sulla pagina 1di 19

ADO.

NET
Databaser
• SQL Client (SQL server 7 og senere)
• OleDb (en række incl. jet)
• ODBC
• MySql (ekstra driver skal instaleres)
• Oracle
• (XML dataset)

Samme interface med forskellige implementeringer for de forskellige


databaser.
Tilknytning sker gennem connectionstring, der er forskellig for de
enkelte databaser. http://www.connectionstrings.com/
ADO.NET - tilgange
2 tilgangsmetoder
• Connection-oriented access
med brug af DataReader
• Connectionless access
med brug af Dataset og DataAdapter /
XML.
ADO.NET – object model
ADO.NET - datadapter
ODBC opsætning
ODBC opsætning
Connections
• System.Data.IDbConnection con;

OleDb
• connectionName = "Provider=Microsoft.Jet.OLEDB.4.0;"
• + @"Data Source=..\..\LagerSystem.mdb;"
• + "Jet OLEDB:Database Password=;";
• con = new System.Data.OleDb.OleDbConnection(connectionName);

ODBC
• connectionName = "DSN=LagerSystem”;
• con = new System.Data.Odbc.OdbcConnection(connectionName);

MySql
• connectionName = "Database=LagerSystem;"
• +"Data Source=localhost;" /*127.0.0.1;" /* localhost */
• +"User Id=root;"
• +"Password=";
• con = new MySql.Data.MySqlClient.MySqlConnection(connectionName);
Query med DataReader
• System.Data.IDbCommand cmd = con.CreateCommand();
• System.Data.IDataReader dataReader;
• cmd.CommandText = "SELECT * FROM Vare";
• dataReader = cmd.ExecuteReader();
• while ( dataReader.Read() )
• {
• …………………………………………..
int varenr = int.Parse(dataReader["Varenr"].ToString());
string betegnelse = dataReader["Betegnelse"].ToString();
• …………………………………………..
• }
• dataReader.Close(); /* luk forespørsel*/
• con.Close();
Update - nonquery
• System.Data.IDbCommand cmd = con.CreateCommand();
• int antalIndsat;
• string sqlString = "INSERT INTO Varebevægelse "
• + " (Varenr, Antal, Tidspunkt, Medarbejdernr)"
• + " VALUES"
• + " (" + varenr + "," + antal + ","
• + "'"+tidspunkt.ToShortDateString()+” ”
• + tidspunkt.ToShortTimeString()+"',"
• + medarbejdernr
• + ")";
• cmd.CommandText = sqlString;
• antalIndsat = cmd.ExecuteNonQuery(); /*udfør SQL Update/Insert/Delete */
• con.Close();
• if (antalIndsat != 1)
• throw new Exception("Fejl ved oprettelse af varebevægelse <sql:" + sqlString+">");
Update - transaction
Transaktionen er bundet til en connection
Startes med
• System.Data.IDbTransaction transaction =
con.BeginTransaction();
• cmd.transaction = transaction;

Ved accepteret checkpoint


• transaction.Commit();

Ved fejl
• transaction.Roolback();
Database Provider Factory
Databaseklasser kan dannes ved brug af Factory klasse
der findes i ”System.Data.Common”, hvorved der kun bliver
2 strenge der er specifik for provider (er ikke implementeret
for MySql)

DbProviderFactory factory =
DbProviderFactory.GetFactory(”System.Data.Odbc”);
DbConnection con = factory.CreateCommand();
con.ConnectionString = ”DSN=LAGERSYSTEM”;

Resten af db-klasser incl. Adapter og CommandBuilder kan


dannes med factory-objektet
ODBC Connection control
• Opsætning af ODBC connection til visuel arbejdsmetode
OleDB Connection control
• Opsætning af OleDb connection til visuel arbejdsmetode
DataSet komponent
DataSet komponent
Adapter komponent tilpasses
DataSet komponent i Form
DataGridView komponent i Form
DataGridView komponent i Form

Potrebbero piacerti anche