Ich versuche, eine Datenbank über Visual Studios zu erstellen, jedoch kann ich nicht. Ich bekomme die Fehlermeldung: "Kann Datenbank" database1 "nicht öffnen von der Anmeldung angefordert. Die Anmeldung fehlgeschlagen. Anmeldung fehlgeschlagen für Benutzer '123'" Allerdings wenn ich manuell "database1" in SQL Server Studios erstellen und dann versuchen, eine Verbindung über es herzustellen C# code Ich kann eine Verbindung zur Datenbank herstellen. Ich habe einen Benutzer mit der ID 123 und dem Kennwort abc in den Serverstudios mit jedem gesetzten Kontrollkästchen der Serverrolle hergestellt. Ich bin mit SQL Express 2012.Ich kann eine Datenbank programmgesteuert nicht erstellen
private void sQLToolStripMenuItem_Click(object sender, EventArgs e)
{
bool create_db = false;
bool create_table = false;
SqlConnection myConnection = new SqlConnection("Server = localhost; Database = database1; User Id = 123; Password = abc;");
try
{
myConnection.Open();
MessageBox.Show("We were able to connect to the database!", "Success!");
create_table = true;
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
create_db = true;
MessageBox.Show("There is no database. We will create one.", "No Database Found.");
}
// For creating the database if not found
if (create_db == true)
{
String str;
SqlConnection myConn = new SqlConnection("Server = localhost; Database = database1; User Id = 123; Password = abc;");
str = "CREATE DATABASE database1";
SqlCommand myCommand = new SqlCommand(str, myConn);
try
{
myConn.Open();
myCommand.ExecuteNonQuery();
MessageBox.Show("DataBase is Created Successfully", "Creation", MessageBoxButtons.OK, MessageBoxIcon.Information);
create_db = false;
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString(), "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
finally
{
if (myConn.State == ConnectionState.Open)
{
myConn.Close();
}
}
}
Sie können keine Datenbank angeben, die nicht existiert. Wenn Sie die Datenbank erstellen müssen, geben Sie keinen "initial catalog" - oder "database" -Wert an. Nachdem Sie die Datenbank erfolgreich erstellt haben, können Sie die Datenbank angeben. –
Ich bin neu in SQL ist es so einfach wie Entfernen von "Database = database1;" aus der Verbindungszeichenfolge? Ich verstehe nicht vollständig "Nachdem Sie die Datenbank erfolgreich erstellt haben, kann ich sie angeben." – Vince
Sehr geehrte @Vince, Bitte beachten Sie, Master-Datenbank als Ihren ursprünglichen Katalog verwenden, etwa so: Database = Master; – mostafa8026