Zugriff auf MS-Access-DB?

Smoerble

Grünschnabel
Derzeit (ASP/VB) mache ich es folgendermassen:

------------------------------------------
dim connCC
Set connCC = Server.CreateObject("ADODB.Connection")
connectCC.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/Datenbanken/levelratingNetwork.mdb")

Set SQLresult = connectCC.execute("SELECT ....... ")
While (NOT(SQLresult.EOF))
.....
SQLresult.MoveNext
Wend

connectCC.Close
Set connectCC = nothing
set SQLresult = nothing
------------------------------------------

Kann mir das jemand in C# übersetzen?
Ich frage, weil ich schon beim simpelsten Zeugs scheitere:
------------------------------------------
<%@ Page Language="C#" %>
<%@ Import Namespace="System" %>
<%
string CONNSTR="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("/Datenbanken/LevelratingNetwork.mdb")+ ";Persist Security Info=False";
string sqlInsert="INSERT INTO Bestellung (Nachname) VALUES ('Otto')";
System.Data.OleDbConnection conn1 = new OleDbConnection(CONNSTR);
%>
------------------------------------------
Fehlermeldung:
"The type or namespace name 'OleDbConnection' does not exist in the class or namespace 'System.Data' (are you missing an assembly reference?)"

Hoffe, es kann jemand helfen, danke
Michael
 

Smoerble

Grünschnabel
Hi nochmal...

Eingebaut:
System.Data.OleDb.OleDbConnection conn1 = new OleDbConnection(CONNSTR);

Fehlermeldung:
"The type or namespace name 'OleDbConnection' could not be found (are you missing a using directive or an assembly reference?)"


Nochmal die Frage von oben umformuliert: ist es sehr aufwendig, obiges Mini-Script komplett in C# umzusetzen und hier zu posten?
z.B.. welche Namespaces muss ich einbauen?
Wie mache ich die Loop/wie frage ich in C# nach EOF?
Wie greife ich auf Inhalt aus der DB zu? Wie gehe ich mit evtl. leeren Feldern um?
(Also wenn ich
string name = [... a la SQLresult("name")...];
habe, aber SQLresult("name") undefined oder null oder sowas ist, was muss ich dann machen?)
Etc...

Selbst Tutorials haben mir bis jetzt nicht geholfen, obwlh das doch eigentlich super simpel ist... aber irgendwie gibt es kein "Super-Basic" Tutorial :(
 

Alexander Schuc

crazy-weasel
Code:
System.Data.OleDb.OleDbConnection conn1 = new System.Data.OleDb.OleDbConnection(CONNSTR);

Wenn du den Namespace nicht mittels 'using' erwähnt hast, benötigst du immer die Klasse direkt mit den Namespaces aufrufen.

Aufwändig wirds im vergleich zu anderen Sachen sicher nicht sein.
Du kannst die die gewünschte Tabelle in ein DataSet laden, und dann mit einer ForEach-Schleife alle Einträge durchgehen.

Also, folgende Sachen könntest dir ansehen:
# OleDbCommand
# OleDbDataReader
# OleDbDataAdapter

Mfg,
Alex