Autor Beitrag
Habak
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Mi 20.07.11 16:11 
Hallo zusammen,

ich verwende in Visual C# eine Datenbank in Form einer mdf-Datei. In dieser sind bereits mehrere Tabellen gespeichert, auf die ich per Code und SqlDataReader auch problemlos zugreifen kann.
Nun möchte ich per SQLCommand eine neue Tabelle in die Datenbank einfügen, was aber mit nachfolgendem Code nicht klappt; es gibt auch keine Fehlermeldung:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
string connStr = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Daten.mdf;" + "Integrated Security=True;User Instance=True";
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
string SQL = "CREATE TABLE descht (ID Int)";
SqlCommand cmd = new SqlCommand(SQL, conn);
SqlTransaction trans;
trans = conn.BeginTransaction(); 
cmd.Transaction = trans;
cmd.ExecuteNonQuery();
trans.Commit();
conn.Close();


Worin liegt der Fehler.
Schon im voraus vielen Dank für Eure Unterstützung.

Gruß

Habak

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
FZelle
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 11.08.11 14:07 
MS hat mit dem AttachDbFile einen ganz schönen BM verzapft, der ständig zu solchen Problemen führt.
Da du die Datei in deiner Solution hast, wird diese bei jedem Debug Lauf ins Projektverzeichnis kopiert und
überschreibt so die von dir geänderte.
Auch benutzt der DatabaseExplorer eine andere Datei als du im Program.

Lass das mit dem AttachDBFile sein, häng die Datenbank vernünftig an einen SQL Server ( Express ) und du wirst dieses Problem nicht mehr haben.

Ach ja, Transactionen können nichts mit DDL anfangen, sind also hier überflüssig.