Autor Beitrag
mkRE
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Mi 09.12.15 21:21 
Hallo zusammen ich habe gestern ein altes Testprojekt von mir geöffnet um ein altes Problem zu behandeln bei dem ich stehen geblieben bin.
Es handelt sich um eine Datenbank Anwendung erstellt mit C# Visual Studio 2012 bei der ich auf eine Datenbank Datei "Data.mdf" zugreife bzw. Passwörter und Benutzernamen verwalten möchte.
Mein Problem bei der Anwendung ist, dass ich nicht weiß wie ich in einer Reihe der der Datenbank den Benutzernamen und Passwort entsprechend der Eingabe in einer TextBox vergleichen kann.

Ich suche nach einer Möglichkeit die jeweiligen texte in einer Reihe in der Datenbankdatei zu vergleichen und dann entsprechend zu reagieren.
Natürlich möchte ich hierbei die ganze Datenbankdetei durchsuchen ob einer der Reihen den Eingaben entspricht.

Könnt ihr mir hierbei weiterhelfen?

Folgender Code wird momentan verwendet:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Data.SqlClient;

namespace BTG_Database
{
    public partial class frmAnmeldung : Form
    {
        public frmAnmeldung()
        {
            InitializeComponent();
        }

        private void btnAnmelden_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Data.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;");
                SqlDataAdapter sda = new SqlDataAdapter("Select Count(*) From Login where Username='" + txtUsername.Text + "' and Password = '" + txtPasswort.Text + "'", con);

                DataTable dt = new DataTable();
                sda.Fill(dt);

                if (dt.Rows.Count == 1 && dt.Rows[0][0].ToString() == "1")
                {
                    frmBTGDatabase.label_1.Text = "Angemeldet";
                    frmBTGDatabase.button_1.Enabled = true;
                    frmBTGDatabase.button_2.Enabled = true;
                    frmBTGDatabase.button_3.Enabled = true;
                    frmBTGDatabase.button_4.Enabled = true;
                    frmBTGDatabase.button_5.Enabled = true;
                    frmBTGDatabase.button_6.Enabled = true;
                    this.Close();
                }
                else
                {
                    if (dt.Rows.Count == 2 && dt.Rows[1][1].ToString() == "1")
                //  if (txtUsername.Text == "Admin" && txtPasswort.Text == "111111")
                    {
                    frmBTGDatabase.label_1.Text = "Angemeldet";
                    frmBTGDatabase.button_1.Enabled = true;
                    frmBTGDatabase.button_2.Enabled = true;
                    frmBTGDatabase.button_3.Enabled = true;
                    frmBTGDatabase.button_4.Enabled = true;
                    frmBTGDatabase.button_5.Enabled = true;
                    this.Close();

                    }
                    else
                    {
                        MessageBox.Show("Benutzername oder Passwort falsch!");
                    }
                }
                       
            }
            catch
            {
                MessageBox.Show("Probleme bei der Datenbankanbindung Data.mdf ");
            }
        }

        private void frmAnmeldung_Load(object sender, EventArgs e)
        {
            this.ActiveControl = txtUsername;
            frmBTGDatabase.toolstripmenuitem_1.Enabled = false;
        }

        private void frmAnmeldung_Closed(object sender, FormClosedEventArgs e)
        {
            frmBTGDatabase.toolstripmenuitem_1.Enabled = true;
        }

        private void btnSchließen_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}



Vielen Dank

Gruß mkRE
Yankyy02
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 132
Erhaltene Danke: 20

Win 10 x64
C# VS 2017 Pro
BeitragVerfasst: Mi 09.12.15 21:56 
Hallo mkRE,

deine herangehensweise würde ich nochmal überdenken. Besser wäre es dir eine eigene Methode zuschreiben die 2 String Werte (Passwort,Username) entgegennimt und einen bool Wert zurückliefert wenn das Passwort und der User vorhanden sind und zusammen passen. Anhand dieses Rückgabewertes kannst du dann deine Oberfläche "freischalten". In dieser Methode würde ich mit SQL Parametern arbeiten und mit einem SQLDataReader. Wenn du bei Google folgenden Suchbegriff verwendest --> User Login C# SQL <-- erhältst du unzählige Beispiele wie man soetwas lösen kann.

LG

_________________
the quiter you become, the more you are able to hear

Für diesen Beitrag haben gedankt: mkRE
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Mi 09.12.15 23:55 
Hallo Yankyy02

super und danke für deinen Tipp!!!

Hab da was zum anschauen und lesen gefunden und zum testen folgendes ausprobiert was sofort funktionierte:

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
        private void btnAnmelden_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Data.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;");
                SqlCommand cmd = new SqlCommand("Select * From Login where Username='" + txtUsername.Text + "' and Password = '" + txtPasswort.Text + "'", con);
                con.Open();

                SqlDataReader re = cmd.ExecuteReader();

                if (re.Read())
                {
                    frmBTGDatabase.label_1.Text = "Angemeldet";
                    frmBTGDatabase.button_1.Enabled = true;
                    frmBTGDatabase.button_2.Enabled = true;
                    frmBTGDatabase.button_3.Enabled = true;
                    frmBTGDatabase.button_4.Enabled = true;
                    frmBTGDatabase.button_5.Enabled = true;
                    frmBTGDatabase.button_6.Enabled = true;
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Benutzername oder Passwort falsch!");
                    this.Close();                                      
                }
                       
            }
            catch
            {
                MessageBox.Show("Probleme bei der Datenbankanbindung Data.mdf ");
            }
        }


Das ist halt nur zum Funktionstest. Ich nehme deinen Tip mit der Methode noch mit und so ansetzen.
Hätte nicht gedacht das es so easy geht man und ich hab mich mit dem Count dum und dämlich versucht :-)
Yankyy02
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 132
Erhaltene Danke: 20

Win 10 x64
C# VS 2017 Pro
BeitragVerfasst: Do 10.12.15 00:04 
Der Code mag zwar "funktionieren" bzw. compilieren aber Sinn macht er keinen! Wenn du das so ausführst wirst du immer angemeldet werden! Hier findet keine Prüfung statt ob der Benutzername vorhanden ist bzw. das Passwort übereinstimmt! Überleg mal was du mit if(re.Read()) prüfst!

LG

_________________
the quiter you become, the more you are able to hear
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Do 10.12.15 13:14 
Hallo Yankyy02,

Danke für deine Antwort ich habe gedacht das es so easy ist :-(.

Da ich vemutet habe das re.Read() jede reihe auf den String in der jeweiligen TextBox auf Gleichheit prüft das es so ok ist. Funktionierte ja auch habe in der Anwendungs Datenbank zwei User eingefügt und kann mich entsprechend der Daten anmelden. Gebe ich etwas anderes bekomme ich die info das Benutzerdaten falsch sind.


Was meinst du genau mit "wirst du immer angemeldet werden"?
Meinst du mit der Datenbak verbunden zu sein oder das ich in der Applikation angemeldet bleibe?In Der Applikation habe ich auch daran gedacht sich abzumelden.

Ich gehe das ganze heute Abend noch mal durch und schaue was das re.Read() genau prüft.

Vielleicht kannst du mir noch einige Hinweise geben bitte.

Danke.

Viele Grüße
Yankyy02
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 132
Erhaltene Danke: 20

Win 10 x64
C# VS 2017 Pro
BeitragVerfasst: Do 10.12.15 16:19 
Hey mkRE,

die Read() Methode des SQLDataReaders prüft ob noch weitere Daten vorhanden sind und gibt dann jeweils true oder false zurück. Hierbei wird nicht überprüft ob der Username zum Passwort passt oder ähnliches. Da du im Select Statement bereits Username und Passwort angibst liefert er natürlich false zurück wenn der Username samt Passwort nicht vorhanden ist. Dir sollte nur klar sein was die Read Methode genau tut und für was sie dar ist.

LG

_________________
the quiter you become, the more you are able to hear
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Do 10.12.15 19:23 
Hallo Yankyy02,

im allgemeinen so wie ich dich verstehe war dein Ziel zu verstehen wie die Read() Methode funktioniert ist das richtig?
So wie du beschrieben hast wie die Methode Read() arbeitet steht auch in den Beschreibungen von Windows beschrieben.
Aber die Lösung ganz gesehen ausreichend?!

Bitte verstehe das ich ein Anfänger im Bezug auf Datenbank Anwendungen bin :-) und möchte gerne dazulernen wie es tatsächlich gemacht wird.

Deinen weiteren Tipp mit der eigens für die Passwort und Username Kontrolle wie unten von dir beschrieben werde ich auch machen ich ändere das Konzept!:-)

Viele Grüße

mkRE
Yankyy02
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 132
Erhaltene Danke: 20

Win 10 x64
C# VS 2017 Pro
BeitragVerfasst: Do 10.12.15 20:26 
Hallo mkRE,

grundsätzlich ist es mir um das gegangen. :wink: Gerade als Anfänger so wie du dich beschreibst hat man meist das Ziel so schnell wie möglich ein Ergebnis zu erzielen. Ich bin selbst kein Profi bzw. Professioneller Entwickler und wenn ich so manchen Code meiner Anwendungen posten würde bin ich mir sicher das 10 weitere sofort die Hände über den Kopf zusammenschlagen würden. :D Wenn es dir für das erste reicht kannst du es natürlich so lassen aber ich würde dir raten das doch nochmal zu überdenken! Einen Tipp hab ich noch für dich und das war auch mein großer Fehler den ich begangen habe ....
schau dir wenn du Methoden aus der .Net Bibliothek verwendest die Doku dazu an. Meist fällt dann der Groschen wie man so schön sagt von selbst.

PS: Copy & Paste hilft dir zwar im ersten Moment weiter aber wenn du das nächste mal wieder auf solch ein Problem stoßt fängst du wieder von vorne an.

LG

_________________
the quiter you become, the more you are able to hear
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Do 10.12.15 20:55 
Hallo Yankyy02,

dafür das du kein Professioneller bist finde ich super wie du Helfen kannst!!
Du hasst aber recht man sollte nicht nur dem Ergebnis nachstreben ohne den Hintergrund zu verstehen.
Daher möchte ich im ernst den Problemen so entgegen gehen die Lösungen zu verstehen und freue mich das man von einigen auch gefordert wird.
Manchmal dauert es länger die Tipps zu verarbeiten :-).
Bei der Anwendung die ich wieder aufgegriffen habe womit du mir hilft sind einige Fehler und offene Punkte
die ich gerne abarbeiten möchte um das abzuschließen. Das nächste Projekt was ich Plane hat mit Zeichnen und Datenbank zu tun.
Alle bisherigen Fehler bzw. falschen Herangehensweisen will ich dort dann entsprechend weglassen.

Zu der Datenbankdatei habe ich noch folgendes Problem und zwar musste ich diese Datei die mit MSQL 2012 erstellt wurde aktualisieren auf MSQL 2014.
Nun kann ich auf die Datei zugreifen und die dort eingetragenen Benutzerdaten auch lesen. Nun seit gestern öffne ich die Tabelle wie gehabt, jedoch zeigen sich dort die Daten nicht.
Keine Ahnung warum, als würde ich eine ganz andere Datenbankdatei öffnen. Ich sende gleich mal den Code der jedoch in Ordnung sein sollte.

Viele Grüße
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Do 10.12.15 21:23 
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
namespace BTG_Database
{
    public partial class frmBenutzerkonto : Form
    {
        private string message = "Möchten Sie wirklich das Fenster BTG-Benutzerkonto verlassen?";
        private string caption = "Fenster verlassen";

        public frmBenutzerkonto()
        {
            InitializeComponent();
        }

        private void lOGINBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            this.Validate();
            this.lOGINBindingSource.EndEdit();
            this.tableAdapterManager.UpdateAll(this.dataDataSet1);

        }

        private void frmBenutzerkonto_Load(object sender, EventArgs e)
        {
            this.lOGINTableAdapter.Fill(this.dataDataSet1.LOGIN);
            this.lOGINTableAdapter.Fill(this.dataDataSet1.LOGIN);
            frmBTGDatabase.button_6.Enabled = false;

        }

        private void lOGINDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            this.Close(); 
        }

        private void frmBenutzerkonto_Closed(object sender, FormClosedEventArgs e)
        {
            frmBTGDatabase.button_6.Enabled = true;
        }

        private void frmBenutzerkonto_Closing(object sender, FormClosingEventArgs e)
        {
            DialogResult result = MessageBox.Show(message, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (result == DialogResult.No)
            {
                e.Cancel = true;
            }
        }
    }
}


Und hier soll ja eigentlich die Tabelle gefüllt werden:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
        private void frmBenutzerkonto_Load(object sender, EventArgs e)
        {
            this.lOGINTableAdapter.Fill(this.dataDataSet1.LOGIN);
            this.lOGINTableAdapter.Fill(this.dataDataSet1.LOGIN);
            frmBTGDatabase.button_6.Enabled = false;
        }


Eigentlich ist der Code nicht aussagekräftig aber ich kann mir nicht weiterhelfen warum das nicht angezeigt wird.
Vorher ging das :-(

Viele Grüße
Einloggen, um Attachments anzusehen!
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4345
Erhaltene Danke: 877


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 10.12.15 21:30 
Warum füllst du die DataTable denn gleich 2mal?
Hängt die lOGINBindingSource denn noch an deinem lOGINDataGridView?

Du hast denn Code debuggt und geschaut das nach dem lOGINTableAdapter.Fill auch Daten in der dataDataSet1.LOGIN DataTable drin stecken? Dann weißt du zumindest ob Daten aus der Datenbank kommen oder ob etwas beim Binding zwischen DataSet und DataGridView schief gelaufen ist.
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Do 10.12.15 23:53 
Hallo Ralf

Das doppelt befüllen ist ein versehen von mir habs nicht gelöscht war aber standardmäßig nicht im Code.

Die lOGINBindingSource hängt an dem lOGINDataGridView habe das kontrolliert.

Getestet habe ich im normalen Ablauf wie im Code, Benutzerkonto Form hat sich geladen und ich hätte erwartet das die Tabelle mit den voreingestellten Daten befüllt wird.

Ich finde einfach den Fehler nicht :-(
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 3897
Erhaltene Danke: 794

Win7
C++, C# (VS 2015/17)
BeitragVerfasst: Fr 11.12.15 08:54 
Hallo mkRE,

auch für dich der Tipp, lerne mit dem Debugger umzugehen. Wenn du nicht weißt, was der alles kann: [Artikel] Debugger: Wie verwende ich den von Visual Studio?

Du hast die Frage von Ralf aber noch nicht beantwortet:
Ralf Jansen hat folgendes geschrieben:
Du hast denn Code debuggt und geschaut das nach dem lOGINTableAdapter.Fill auch Daten in der dataDataSet1.LOGIN DataTable drin stecken? ...
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Sa 12.12.15 12:32 
Hallo TH69,

danke für den Debugger Link im allgemeinen habe ich öfters mit dem Debugger gearbeitet Breakpoints setzen usw. hat mir auch oft weiter geholfen auch bei anderen Entwicklungs Software.
Jedoch lese ich mir den Link durch mit Sicherheit ist das eine oder andere beschrieben was ich nicht kannte beim Visual Studio.

Auf die Frage von Ralf muss ich gestehen das ich nicht geschaut habe ob nach dem lOGINTableAdapter.Fill auch Daten in der dataDataSet1.LOGIN DataTable drin stecken mittels Debugger.

Ich melde mich sobald ich das getan habe ggf. erkennt man dort etwas.

Vielen Dank

Gruß

mkRE
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Sa 12.12.15 23:02 
Hallo zusammen habe gerade einmal einen Haltepunkt beim lOGINTableAdapter.Fill angefügt und nach dem Laden der Benutzerseite einige Ausnahme gesehen mit folgenden Hinweisen siehe auch Bild im Anhang:
Zitat:
Ausnahme:Ausgelöst: "Cannot open database "C:\USERS\USER\DOCUMENTS\BTG-DATABASE_20_08_2013\BTG-DATABASE\BTG-DATABASE\BIN\DEBUG\DATA.MDF" requested by the login. The login failed.
Login failed for user 'xxx\User'." (System.Data.SqlClient.SqlException)
System.Data.SqlClient.SqlException wurde ausgelöst: "Cannot open database "C:\USERS\USER\DOCUMENTS\BTG-DATABASE_20_08_2013\BTG-DATABASE\BTG-DATABASE\BIN\DEBUG\DATA.MDF" requested by the login. The login failed.
Login failed for user 'xxx\User'."
Time: 12.12.2015 22:32:29
Thread:Hauptthread[4360]

Ich weiß jetzt wirklich nicht wo oder wie ich gucken soll mittels Debugger ob im dataDataSet1.LOGIN DataTable Daten Stecken weil ich da nichts gesehen habe woran ich mich orientieren könnte.

Anderseits die Meldung oben vom Login Failed macht mich jetzt etwas stutzig.


Viele Grüße
Einloggen, um Attachments anzusehen!
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: So 13.12.15 00:50 
Ich glaube ich weiß woran das problem liegen kann und zwar benutze ich VS 2012, mein MS SQL Server (Neu Installiert) ist Version 2014.
Habe jetzt bei den VS Tools die Datenbank Verbindungsparameter von (LocalDB)\v11.0 auf (LocalDB)\MSSQLLocalDB umgestellt, weil ich beim eintragen neuer Benutzerdaten in die Tabelle eine Fehlermeldung erhalten habe, dass die Versionen zu alt ist. Diese Meldung ist nun weg nach den oben genannten änderungen. Trotzdem habe ich das Problem das die Datenbank Datei "DATA" nicht mit den erhofften Benutzerdaten angezeigt wird "leer Tabelle" wie vorher. :-(
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: So 13.12.15 14:23 
Hallo zusammen, ich habe jetzt so lange probiert ohne Erfolg nach der oben genannten Änderung konnte ich auf einmal keine Datenbank Tabellen erstellen weil Visual Studio mit unbekanntem Fehler
neu gestartet wurde. So habe ich nach weiterer Recherche habe ich SQL Server Data Tools for Visual Studio 2012 installiert nun läuft alles wie gehabt leider die Datenbankdatei Data nicht, hab gesehen das dort in den Verbindungsdaten die unveränderlich (Grauer Hintergrund) sind (LocalDB)\v11.0 steht. Somit habe ich jetzt eine neue Datenbankdatei UserData erstellt. Die dort eingebundenen Daten werden wie gewünscht angezeigt.

Leider kommt immer mehr dazu jetzt kann ich mittels folgender Verbindungsdaten nicht mehr wie vorher mit der Datenbank verbindung aufnehmen um meine Benutzerdaten abzufragen:

ausblenden C#-Quelltext
1:
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\UserData.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;");					



Ich möchte die im Projekt integrierte Datenbank verwenden für Benuterdaten jedoch geht das nicht mehr :-(

Woran kann das liegen?
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: So 13.12.15 23:44 
Hallo zusammen ich melde mich noch einmal hänge immer noch an dem selben problem das ich nun nicht mehr auf meine Datenbank zugreifen kann.
Habe jetzt eine neue Anwendung gemacht mit einer neuen Datenbankanwedung. Im Debugger bleibt die Applikation mit dem Fehler stehen:

Ausnahme:Ausgelöst: "Unable to open the physical file "c:\users\user\documents\visual studio 2012\Projects\DB_Benutzeranmeldung\DB_Benutzeranmeldung\bin\Debug\Verwaltung.mdf". Operating system error 32: "32(Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.)".
An attempt to attach an auto-named database for file c:\users\user\documents\visual studio 2012\Projects\DB_Benutzeranmeldung\DB_Benutzeranmeldung\bin\Debug\Verwaltung.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share." (System.Data.SqlClient.SqlException)
System.Data.SqlClient.SqlException wurde ausgelöst: "Unable to open the physical file "c:\users\user\documents\visual studio 2012\Projects\DB_Benutzeranmeldung\DB_Benutzeranmeldung\bin\Debug\Verwaltung.mdf". Operating system error 32: "32(Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.)".
An attempt to attach an auto-named database for file c:\users\user\documents\visual studio 2012\Projects\DB_Benutzeranmeldung\DB_Benutzeranmeldung\bin\Debug\Verwaltung.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share."
Time: 13.12.2015 23:39:47
Thread:Hauptthread[2612]


Komme leider nicht mehr weiter und im Netz habe ich nicht viel zu dem Fehler gefunden.
Würde mich sehr freuen wenn ihr mir weiterhelfen könnt.

Viele Grüße

Danke.
Yankyy02
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 132
Erhaltene Danke: 20

Win 10 x64
C# VS 2017 Pro
BeitragVerfasst: Mo 14.12.15 13:51 
Hallo mkRE,

eigentlich sagt dir die erste Zeile in der Fehlermeldung bereits wo du ansetzen mußt. Wenn du --> Unable to open the physical file <-- in der Suchmaschine deiner Wahl eingibst erhaltest du bereits einige Vorschläge um das Problem zu beheben. Entweder hast du keine Schreibrechte was du jedoch im Win-Explorer leicht prüfen kannst oder
warum auch immer greift bereits ein anderer Dienst/Service/Anwendung auf die Datei zu was du jedoch auch selbst überprüfen kannst bzw. mußt.

LG

_________________
the quiter you become, the more you are able to hear
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Mo 14.12.15 23:46 
Hallo Yankyy02,

ich danke dir für deine Antwort. Mit der Suchmaschine habe ich es auch versucht leider nichts auf die schnelle Braucubares gefunden.
Werde noch einmal schauen wie ich das problem beheben kann.

Schreibrechte habe ich geprüft sollte ok sein.
Ob etwas auf die Datei zugreift was dann der Fall sein sollte, kann ich mir grad nicht vorstellen was auf die Datei zugreifen soll?
Das ist mir ein Rätsel.

Ich melde mich wenn ich alles ausprobiert habe.

Danke.

Viele Grüße