Zugriff auf Access DB

18/03/2010 - 02:04 von Dirk Herwig | Report spam
Hallo,

ich versuche verzweifelt, einen Datensatz in eine Access DB zu schreiben.
Der Vorgang wird ohne Fehlermeldung durchgeführt, jedoch stehen die Daten
nicht in der DB.

Hier mal mein Versuch:
try
{
using (OleDbConnection con = new OleDbConnection())
{
con.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=|DataDirectory|\DB\schluessel.mdb;Persist Security Info=True";
OleDbCommand sqlcom = new OleDbCommand();
sqlcom.Connection = con;
sqlcom.CommandText = @"INSERT INTO Quersummen (Quersummen,
Produktname) VALUES (?, ?)";
sqlcom.Parameters.Add("@p1", OleDbType.VarChar);
sqlcom.Parameters["@p1"].Value = textBox1.Text.ToUpper().Trim();
sqlcom.Parameters.Add("@p2", OleDbType.VarChar);
sqlcom.Parameters["@p2"].Value = textBox2.Text.Trim();
con.Open();
sqlcom.ExecuteNonQuery();
}

this.DialogResult = DialogResult.OK;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "DB Fehler", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}


Ich weiß nicht mehr, wo ich noch suchen soll.

Gruss

Dirk
 

Lesen sie die antworten

#1 Frank Dzaebel
18/03/2010 - 06:47 | Warnen spam
Hallo Dirk,

ich versuche verzweifelt, einen Datensatz in eine Access DB zu
schreiben. Der Vorgang wird ohne Fehlermeldung durchgeführt, jedoch
stehen die Daten nicht in der DB. Hier mal mein Versuch:



a) Beachte, die wirkliche Datenbank liegt dann unter:
bin\DB\ [Debug oder Release] \schluessel.mdb

b) Wenn Du die MDB über Drag/Drop in die Solution
gezogen hast, wird automatisch Dein Pfad angelegt und in der
app.config gespeichert. Insofern solltest Du ihn auch
von dort beziehen. Zum Beispiel:

Properties.Settings Props = Properties.Settings.Default;

private void Form1_Load(object sender, EventArgs e)
{
try
{
using (OleDbConnection con = new OleDbConnection())
{
con.ConnectionString = Props.MeineMdbConnectionString;
// ..

c) Aber es wird auch (wenn Du die MDB markierst) unter Eigenschaften:
"immer kopieren" angehakt. Das ist für Tests "tödlich", weil die MDB
sonst immer wieder neu kopiert (überschrieben) wird und das kann
genau das von Dir geschilderte Verhalten erzeugen.
Ändere die Eigenschaft ab in: "Kopieren, wenn neuer".


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen