Ich habe Klasse für die Verbindung zur Datenbank:C# Klasse verwendet in Klassen wht es nicht
namespace DamianWprawka
{
class SQLcon
{
static SqlConnection konekt = new SqlConnection();
public SQLcon()
{
konekt.ConnectionString = "Data Source=.\\sqlexpress;"
+ "Initial Catalog=PRACA;" + "User id=sa;" + "Password=xxXXxx;";
}
void open()
{
konekt.Open();
}
void close()
{
konekt.Close();
}
}
}
Und andere für Abfrage wie Einfügen, Aktualisieren, Löschen, Herunterladen von Daten itp:
namespace DamianWprawka
{
class SQLquery
{
SQLcon SQLcnn = new SQLcon();
public void PobierzPracownik
{
SQLcnn.Open();
}
}
}
Warum kann ich nicht SQLcnn.Open();
anrufen? Ich versuche mit statischem Feld/Klasse und ich kann es nur normal in Main verwenden. Ich weiß, dass ich in einer Klasse eine Verbindung herstellen und abfragen kann, aber ich möchte dieses Geheimnis für die Zukunft verstehen.
Sie sollten lesen über [Zugriffsmodifizierer] (https://msdn.microsoft.com/en-us/library/wxh6fsc7.aspx) – dotctor
Ihre Methode ist 'open', nicht' Open'. Ihre Klasse ist auch privat, nicht öffentlich. – Rob
Zwei Gründe: 1. 'void open()' ist eine 'private' Funktion, was bedeutet, dass Sie nicht außerhalb der Klasse selbst darauf zugreifen können. 2. 'open()' und 'Open()' können zwei verschiedene Funktionen sein. C# unterscheidet zwischen Groß- und Kleinschreibung. – AntiTcb