Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - kein Zugriff auf SQL Server


Raorkon - Mo 21.07.08 23:37
Titel: kein Zugriff auf SQL Server
Hallo zusammen, ich versuche nun schon seit geraumer Zeit auf meine SQL-Datenbank zuzugreifen. Ich habe bereits all möglichen Google-Links durchsucht, habe auch schon ne Menge ausprobiert aber nichts hat geholfen.
Leider sind meine Erfahrungen in c# noch sehr unterentwicklet so das es wahrscheinlich nur eine Kleinigkeit ist
Ich bekomme immer die Meldung:


Quelltext
1:
Der 'nobody\sqlexpress'-Provider ist nicht auf dem lokalen Computer registriert.                    


ich habe bereits auf 86x umgestellt, also daran liegt es nicht

hier ist noch mein Quellcode:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
            String server = "Provider=nobody;"
            String uid = "User ID=Raorkon;";
            String passwort = "";
            String Initial = "Initial Catalog=testdb";
            String connectionString = server+uid+"Passwort=\"\";"+Initial;
            OleDbConnection connection = new OleDbConnection(connectionString);
            OleDbCommand command = connection.CreateCommand();
            command.CommandText = "select userpasswort from FROM user where username = '"+txtUser+"'";
          
            OleDbDataReader Reader;
            connection.Open();
            Reader = command.ExecuteReader();
            try
            {
                 passwort = Reader["userPassword"].ToString();
                 oleDbConnection.Close();
                     
            }
                 catch(OleDbException ex){lblErrMsg.Text="DB geht nicht";}
            }


Moderiert von user profile iconUGrohne: Code- durch C#-Tags ersetzt


UGrohne - Mo 21.07.08 23:50

Schau Dir mal diese Seite hier an: http://www.connectionstrings.com/?carrier=sqlserver2005

Und stell Dir aus dem ersten Beispiel Deinen ConnectionString zusammen. Provider steht hier nicht für den Quellserver, sondern in dem Fall der OLE-DB-Provider, den Du verwenden willst. Da OLEDB aber langsam ist, solltest Du direkt mit dem Native Client arbeiten.

Dein SQL hat übrigens auch noch einen Fehler ;)


Raorkon - Di 22.07.08 07:10


Quelltext
1:
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;                    



wäre ja das Beispiel

mein String wäre ja dann:


Quelltext
1:
String connectionstring="Data Source=nobody;Initial Catalog=testdb;User Id=Raorkon;Password=\"\"";                    


Kha - Di 22.07.08 10:55

Wenn du "\sqlexpress" noch an die Data Source anhängst, sollte das passen. Aber eben nur, wenn du statt OleDB die Sql*-Klassen benutzt.


Raorkon - Di 22.07.08 12:08

/sqlexpress muss doch nur dran wenn es die express-version nutzt, oder?

aber egal es funktioniert mit oder ohne auch nicht.

könntest du mir das mit mit der oledb/sql-klasse mal genauer erklären?


Th69 - Di 22.07.08 13:27

Du bindest einfach

C#-Quelltext
1:
using System.Data.SqlClient;                    

ein und verwendest dann deren entsprechenden Klassen:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
string connectionstring="Data Source=nobody;Initial Catalog=testdb;User Id=Raorkon;Password=\"\""// alternativ: UId=...; Pwd=...

SqlConnection connection = new SqlConnection(connectionString);  
SqlCommand command = connection.CreateCommand();  
command.CommandText = "select userpasswort from FROM user where username = '"+txtUser+"'";

connection.Open();  
SqlDataReader Reader = command.ExecuteReader();  
...