Entwickler-Ecke

WinForms - Lokale Datenbank lässt sich nicht aufrufen


Vegeto - Mi 12.09.12 21:38
Titel: Lokale Datenbank lässt sich nicht aufrufen
nabend...

habe soeben eine lokale Datenbank angelegt.
Ich habe das so gemacht:
Ich habe rechts klick auf Projekt gemacht, dann Neues Elemt hinzufügen, in dem Fenster lokale Datenbank ausgewählt, das nächste fenster habe ich einfach geschlossen, So Da hatte ich eine Lokale Datenbank mit den Namen Database1.sdf.

Dann habe ich in die Lokale Datenbank eine Tabelle hinzugefügt mit dem Namen test.
Diese Tabelle hatte 4 Spalten (ID, Name, Nachname, Adresse)
Danach habe ich die Tabelle gefüllt.

Jetzt wollte ich diese Tabelle im DataGridView wieder geben, doch irgendwie klappt das nicht.

Mein CSharp Code

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
        
using System.Data.SqlServerCe;

private void holen_btn_Click(object sender, EventArgs e)
        {
            SqlCeConnection conn = new SqlCeConnection();
            conn.ConnectionString = "Data Source = 'Database1.sdf';" 

            conn.Open();
            SqlCeDataAdapter dA = new SqlCeDataAdapter("SELECT * FROM Test", conn);
            conn.Close();
            DataTable dT = new DataTable();
            dA.Fill(dT);

            dataGridView1.DataSource = dT;
        }

Doch dann kommt dieser Fehler:
[url=http://www.fotos-hochladen.net/view/fehleriav3e9l18j.jpg]user defined image[/url]

Weiß jemand woran das liegt.

Lg


Yankyy02 - Mi 12.09.12 22:21

Servus Vegeto!!

Wenn du dir deine Fehlerliste ansiehst solltest du sehen das dort ----> ; erwartet steht!

Und in Zeile 24 haben wir den Übeltäter!!


C#-Quelltext
1:
conn.ConnectionString = "Data Source = 'Database1.sdf';"                    


solltest du in


C#-Quelltext
1:
conn.ConnectionString = "Data Source = 'Database1.sdf'";                    


umändern dann sollte es funktionieren!!

MfG


Vegeto - Do 13.09.12 08:13

user profile iconYankyy02 hat folgendes geschrieben Zum zitierten Posting springen:
solltest du in


C#-Quelltext
1:
conn.ConnectionString = "Data Source = 'Database1.sdf'";                    


umändern dann sollte es funktionieren!!


Hey.. ups :oops:

Habe ich geändert kommt trotzdem der selbe Fehler :/
Wieso steht dort die Datei oder Assambly fehlt, habe sie bei verweise hinzugefügt und auch eine using anweisung erstellt.

lg


Yankyy02 - Do 13.09.12 09:23

Morgen,

jep hätte erst garnicht kompilieren dürfen!

Ich tippe dann mal dass du den SQL Server Compact nicht installiert hast!

http://www.microsoft.com/de-de/download/details.aspx?id=17876

MfG

Moderiert von user profile iconTh69: HTML-Tags entfernt -> direkte URL


Vegeto - Do 13.09.12 09:41

Yankyy02 hat folgendes geschrieben:


HTML-Dokument
1:
http://www.microsoft.com/de-de/download/details.aspx?id=17876                    



Moin

Ohh no :( habe keine rechte sachen zu installieren :/

Ich habe nun die Database1.sdf gelöscht und eine dienstbasierte Datenbank erstellt, die hat auch die Endung .mdf.

wie muss nun die connection aussehen?

LG

Moderiert von user profile iconTh69: Beitragsformatierung überarbeitet.


Ralf Jansen - Do 13.09.12 10:38

Wenn du die Referenz für den SQL Server CE hinzugefügt hast und sogar per Visual Studio diese Datenbank pflegen konntest ist der SQL Server CE sicherlich bei dir vorhanden. Nur kann deine fertige Anwendung die Assembly dazu nicht finden. Es könnte bereits helfen wenn du einfach die Referenz auf 'copy local' setzt (den Punkt findest du in den Properties der Referenzen wenn du die entsprechende Referenz im Solution Explorer ausgewählt hast). Dann wird die Assembly in deinen Ausgabeordner deines Projekts kopiert und ist dann auch dort zu finden.

Bei der dienstbasierten Datenbank solltest du bedenken das du den entsprechenden Dienst (also einen installierten SQL Server) auch brauchst. Bei CE ist es einfach nur die Assembly die mitverteilt werden muß.


Vegeto - Do 13.09.12 11:08

user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
Es könnte bereits helfen wenn du einfach die Referenz auf 'copy local' setzt (den Punkt findest du in den Properties der Referenzen wenn du die entsprechende Referenz im Solution Explorer ausgewählt hast


Okay, aber wo muss ich das machen mit "copy Local"...? Zudem die frage, brauch ich die Installation nicht, denn ich habe keine Rechte für eine Installation :/

Lg


Ralf Jansen - Do 13.09.12 11:43

Zitat:
Okay, aber wo muss ich das machen mit "copy Local"...?


So wie ich geschrieben habe du öffnest im Solution Explorer den Knoten mit den Referenzen (da wo du auch die Referenz für die Assembly hinzugefügt hast), klickst auf die gewünschte Referenz und in den Properties findest du unter anderem den Punkt 'local copy' der, wenn du den auf true setzt, dafür sorgt das die Assembly beim Build zusätzlich in den Ausgabeordner kopiert wird.

Zitat:
Zudem die frage, brauch ich die Installation nicht, denn ich habe keine Rechte für eine Installation :/


Dein Entwicklermaschine wäre mir jetzt egal was du da darfst oder nicht. Da scheint ja der SQL Server schon installiert zu sein sonst würde die mdf Datenbank nicht funktionieren. Aber deine Software wird ja irgendwann mal an andere (zumindest theoretisch) weitergegeben. Bei einem SQL Server CE musst du nur mit deinem Programm auch die CE Assembly mitgeben. Im anderen Fall musst du eine SQL Server Installation vornehmen. Das ist ungleich mehr Aufwand.


Vegeto - Do 13.09.12 12:01

Zunächst einmal Danke an alle Hinweise und Verbesserungen..

hatte gerade ein Gespräch mit meinem Chef und der hat mir gesagt wo und wie ich was anzulegen habe.

Ich möchte mich Herzlich bei Ralf Jansen bedanken.

Villeicht komm ich für dich wie eine kleines Arschl*** rüber, aber Ich danke dir bis hierhin, hast mir bisher in allen meinen Themen weiter geholfen :)

Zum Thema, ich soll eine "locale" Datenbak erstllen, dass tue ich einfach mittels SQL Server Managment Studio, dort lege ich einfach eine neue Datenbank an und erstelle eine tabelle, so ist der Connection String auch einfacher.

Habe die rechte dafür bekommen eine neue DB anzulegen

Lg

DANKE :zustimm: