• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ScreamingNoises

[Visual Studio 2008 C#] Como criar e aceder a uma base de dados

10 mensagens neste tópico

Boas,

Eu gostava de saber como posso fazer para criar uma base de dados no Visual Studio 2008 C#.

Inicialmente a base de dados seria criada e utilizada apenas na mesma máquina. Mas eu queria que esta também pudesse ser acedida por outros computadores na rede local.

No visual studio, eu faço para adicionar um novo item ao projecto e das várias opções dadas, existe uma "local database" e uma "service-based database". Qual a diferença entre estas duas?

Obrigado desde já pela ajuda;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usas o sql server express que vem com o visual studio.. agora convém é instalares o sql management studio para poderes mexer nas tabelas.

Para ser acedida por outros computadores.. precisas de criar linked servers para essa base de dados..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usas o sql server express que vem com o visual studio.. agora convém é instalares o sql management studio para poderes mexer nas tabelas.

Para ser acedida por outros computadores.. precisas de criar linked servers para essa base de dados..

humm, ok, podes explicar como se faz isso?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Humm, pois, mas eu ainda nao sei sequer como criar uma base de dados local, acho que criar o linked server é um passo mais avançado.

Inicialmente só queria por isto a funcionar com uma base de dados local, depois logo vejo como faço isso dos linked server.

Seguindo um tutorial da microsoft: tutorial eu tentei criar uma base de dados local.

Primeiro criei um windows form simples, com apenas um botao para criar uma base de dados. no handler desse botao coloquei:

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

            str = "CREATE DATABASE MyDatabase ON PRIMARY " +
                "(NAME = MyDatabase_Data, " +
                "FILENAME = 'C:\\MyDatabaseData.mdf', " +
                "SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +
                "LOG ON (NAME = MyDatabase_Log, " +
                "FILENAME = 'C:\\MyDatabaseLog.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();
                }
            }

mas quando eu clico no botão ele devolve-me o seguinte erro:

errobv7.jpg

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso penso que seja algum problema no comando... faz um print do comando, ou seja da variável str antes de criares o comando e verifica as plicas todas e assim..

Se não descobrires mostra aí o print do comando... pois deve ser aí o problema..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso penso que seja algum problema no comando... faz um print do comando, ou seja da variável str antes de criares o comando e verifica as plicas todas e assim..

Se não descobrires mostra aí o print do comando... pois deve ser aí o problema..

Fiz como disseste e o conteúdo da variável str é:

CREATE DATABASE MyDatabase ON PRIMARY (NAME = MyDatabase_Data, FILENAME = 'C:\MyDatabaseData.mdf', SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) LOG ON (NAME = MyDatabase_Log, FILENAME = 'C:\MyDatabaseLog.ldf', SIZE = 1MB, MAXSIZE = 5MB, FILEGROWTH = 10%)

Não me parece que tenha algum problema mas continua a dar o mesmo erro.

Esta é a melhor maneira de criar uma base de dados local? e depois de a ter criada vou conseguir que outros clientes se conectem a esta base de dados através da rede, correcto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pelo que estive a ver o problema está mesmo na string de conexão.

Any ideas?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Talvez precises de indicar o username/password para a ligação ao servidor.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bem, problema resolvido;)

o problema estava no sql server e nao na string de conecção;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora