19. november 2006 - 18:37Der er
11 kommentarer og 1 løsning
tilgang til databaser ved hjælp af klasser
Hej,
Jeg forsøger at lave min hjemmeside, så jeg kan genbruge koden på de forskellige sider. Så jeg har lavet mig en klasse med selve min connection, en klasse (for hver af databaserne, jeg skal bruge) med selve select delen og så bruger jeg dem på en cs side.
Funktionen jeg har problemer med er GetInfo(string name) i klassefilen AnjaConnection.cs. Fejlen jeg får, når jeg kører min kode er at der er for få parametre - hvor laver jeg en fejl henne?
dbConnection (klassefil med selve forbindelsen):
public class dbConnection { private OleDbConnection connection = null; public OleDbCommand command = null; public string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\Inetpub\\wwwroot\\Anja3\\Databaser\\adm.mdb;";
public dbConnection() { connection = new OleDbConnection(connectionString); command = new OleDbCommand(); command.Connection = connection; command.CommandType = CommandType.TableDirect; connection.Open(); } }
AnjaConnection.cs (klassefil med select statement): //Lister Scripts osv fra databasen public DataTable GetInfo(string name) { //sætter datarow til nul DataRow row = null;
//opretter en instans af Datatable DataTable myDataTable = new DataTable();
//Tilføjer colonner, der svarer til tabel kolonnerne til datatable myDataTable.Columns.Add(new DataColumn("ID", Type.GetType("System.String"))); myDataTable.Columns.Add(new DataColumn("kategori", Type.GetType("System.String"))); myDataTable.Columns.Add(new DataColumn("overskriftlink", Type.GetType("System.String"))); myDataTable.Columns.Add(new DataColumn("overskrift", Type.GetType("System.String"))); myDataTable.Columns.Add(new DataColumn("beskrivelse", Type.GetType("System.String"))); myDataTable.Columns.Add(new DataColumn("opbygninglink", Type.GetType("System.String"))); myDataTable.Columns.Add(new DataColumn("opbygning", Type.GetType("System.String")));
//Hvilken select jeg arbejder med command.CommandText = "SELECT * FROM Oversigt WHERE kategori = @name";
dbConnection.cs public class dbConnection { private OleDbConnection connection = null; public OleDbCommand command = null; public string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\Inetpub\\wwwroot\\Anja3\\Databaser\\adm.mdb;";
public dbConnection() { connection = new OleDbConnection(connectionString); command = new OleDbCommand(); command.Connection = connection; command.CommandType = CommandType.TableDirect; connection.Open(); }
public void closeConnection() { connection.Close(); }
public void openConnection() { connection.Open(); } }
AnjaConnection.cs public class AnjaConnection { //Ny instans af klassen dbConnection dbConnection connection = new dbConnection(); public OleDbCommand command = null;
public AnjaConnection() { command = connection.command; }
//Lister Scripts osv fra databasen public DataTable GetInfo(string name) { //sætter datarow til nul DataRow row = null;
//opretter en instans af Datatable DataTable myDataTable = new DataTable();
//Tilføjer colonner, der svarer til tabel kolonnerne til datatable myDataTable.Columns.Add(new DataColumn("ID", Type.GetType("System.String"))); myDataTable.Columns.Add(new DataColumn("kategori", Type.GetType("System.String"))); myDataTable.Columns.Add(new DataColumn("overskriftlink", Type.GetType("System.String"))); myDataTable.Columns.Add(new DataColumn("overskrift", Type.GetType("System.String"))); myDataTable.Columns.Add(new DataColumn("beskrivelse", Type.GetType("System.String"))); myDataTable.Columns.Add(new DataColumn("opbygninglink", Type.GetType("System.String"))); myDataTable.Columns.Add(new DataColumn("opbygning", Type.GetType("System.String")));
//Hvilken select jeg arbejder med command.CommandText = "SELECT * FROM Oversigt WHERE kategori = @name";
Det fungerer fint - men hjælper mig jo ikke med mit problem - at jeg skal have selve forbindelsen ud i en klasse (dbConnection) Selectkommandoen der smider det ned i en datatable i en anden klasse(AnjaConnection) og så at jeg kalder Selectkommandoen med den parameter jeg nu engang skal bruge (Jeg har andre en "Script" og vil gerne genbruge koden, så jeg ikke skal ind og rette i alt for mange sider når det ændres/lægges op).
Den havde jeg slet ikke bemærket :o) Et svar får du her. Mvh
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.