Gå til innhold

Anbefalte innlegg

Jeg prøver å opprette en database på maskinen, men får jeg får en feilmelding om at navnet jeg har valgt allerede er i bruk, uansett hva jeg jeg velger som navn.

 

private void CreateDatabase()
	{
		databaseName = databaseNameTextBox.Text;

		String str;
		SqlConnection myConn = new SqlConnection("Server=FRANCISACER\\SQLEXPRESS;Integrated security=SSPI;database=master");

		str = "CREATE DATABASE MyDatabase ON PRIMARY " +
			"(NAME = " + databaseName + ", " +
			"FILENAME = 'C:\\" + databaseName + ".mdf', " +
			"SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +
			"LOG ON (NAME = " + databaseName + ", " +
			"FILENAME = 'C:\\" + databaseName + ".ldf', " +
			"SIZE = 1MB, " +
			"MAXSIZE = 5MB, " +
			"FILEGROWTH = 10%)";

		SqlCommand myCommand = new SqlCommand(str, myConn);
		try
		{
			myConn.Open();
			myCommand.ExecuteNonQuery();
			MessageBox.Show("DataBase is Created Successfully", "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information);
		}
		catch (System.Exception ex)
		{
			MessageBox.Show(ex.ToString(), "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information);
		}
		finally
		{
			if (myConn.State == ConnectionState.Open)
			{
				myConn.Close();
			}
		}
	}

 

All hjelp mottas med stor takk :)

 

Mvh

 

Francis

post-56362-1216112938_thumb.jpg

Lenke til kommentar
Videoannonse
Annonse
Jeg prøver å opprette en database på maskinen, men får jeg får en feilmelding om at navnet jeg har valgt allerede er i bruk, uansett hva jeg jeg velger som navn.

 

private void CreateDatabase()
	{
		databaseName = databaseNameTextBox.Text;

		String str;
		SqlConnection myConn = new SqlConnection("Server=FRANCISACER\\SQLEXPRESS;Integrated security=SSPI;database=master");

		str = "CREATE DATABASE MyDatabase ON PRIMARY " +
			"(NAME = " + databaseName + ", " +
			"FILENAME = 'C:\\" + databaseName + ".mdf', " +
			"SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +
			"LOG ON (NAME = " + databaseName + ", " +
			"FILENAME = 'C:\\" + databaseName + ".ldf', " +
			"SIZE = 1MB, " +
			"MAXSIZE = 5MB, " +
			"FILEGROWTH = 10%)";

		SqlCommand myCommand = new SqlCommand(str, myConn);
		try
		{
			myConn.Open();
			myCommand.ExecuteNonQuery();
			MessageBox.Show("DataBase is Created Successfully", "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information);
		}
		catch (System.Exception ex)
		{
			MessageBox.Show(ex.ToString(), "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information);
		}
		finally
		{
			if (myConn.State == ConnectionState.Open)
			{
				myConn.Close();
			}
		}
	}

 

All hjelp mottas med stor takk :)

 

Mvh

 

Francis

Vet ikek om det har noe med saken å gjøre, men har du prøvd å gjøre det på en litt enklere måte? Hva med å droppe den komplekse strengen og si heller noe slik:

	str = "CREATE DATABASE " + databaseName

og ikke noe mer. Alt det andre er vel strengt tatt default, med unntak av plasseringen av filene.

 

Ole

Lenke til kommentar

Takk! Det gikk, men det er viktig for programmets funksjon at brukeren skal kunne bestemme hvor databasefilene skal lagres. Vet du/dere hvordan jeg kan gjøre det når koden i det første innlegget gir den vedlagte feilmeldingen?

 

Mvh

 

Francis

 

EDIT: Skrivefeil.

Endret av :Francis:
Lenke til kommentar
Takk! Det gikk, men det er viktig for programmets funksjon at brukeren skal kunne bestemme hvor databasefilene skal lagres. Vet du/dere hvordan jeg kan gjøre det når koden i det første innlegget gir den vedlagte feilmeldingen?

 

Mvh

 

Francis

 

EDIT: Skrivefeil.

Bare å legge på parameter for parameter det og se hvor det strander hen.

Lenke til kommentar

Problemet er at du gir datafilen og logfilen samme logiske navn.

 

str = "CREATE DATABASE MyDatabase ON PRIMARY " +

"(NAME = " + databaseName + ", " +

"FILENAME = 'C:\\" + databaseName + ".mdf', " +

"SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +

"LOG ON (NAME = " + databaseName + "_log, " +

"FILENAME = 'C:\\" + databaseName + ".ldf', " +

"SIZE = 1MB, " +

"MAXSIZE = 5MB, " +

"FILEGROWTH = 10%)";

Endret av jorn79
Lenke til kommentar
Problemet er at du gir datafilen og logfilen samme logiske navn.

 

str = "CREATE DATABASE MyDatabase ON PRIMARY " +

"(NAME = " + databaseName + ", " +

"FILENAME = 'C:\\" + databaseName + ".mdf', " +

"SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +

"LOG ON (NAME = " + databaseName + "_log, " +

"FILENAME = 'C:\\" + databaseName + ".ldf', " +

"SIZE = 1MB, " +

"MAXSIZE = 5MB, " +

"FILEGROWTH = 10%)";

 

Dæven. La ikke merke til dn jeg. Men det høres logisk ut. Flink du Jørn ;-)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...