none
como criar um banco de dados utilizando o sql server 2005 e como fazer conexão com vb.net RRS feed

  • Pergunta

  • Estou pela 1ª vez usando o sql server 2005 e gostaria de criar um banco de dados , pois tenho um prograrma teste em vb.net que usa access e queria  que esse programa utilizasse um banco de dados criado no sql server 2005.

     

    criei uma tabela funcionario  , dentro do diretório master do sql server 2005 , não sei realmente se é nesse diretório onde devia ter criado uma tabela, e não estou conseguindo conexao do programa com este banco.  

    caminho do banco :

    CASA-403907F3C0\SQLEXPRESS\Databases\System Databases\master\Tables\System Tables\dbo.funcionario

     

    qdo tento abrir a conexão com o banco aparece seguinte msg de erro:

    na linha do open()

    Não é possível abrir o banco de dados "master.mdf" solicitado pelo logon. Falha de logon. Falha de logon do usuário 'CASA-403907F3C0\Administrador'.

    codigo do programa

    Imports System.Data

    Imports System.Data.SqlClient

    Partial Class _Default

    Inherits System.Web.UI.Page

    Dim objConexao As SqlConnection

    Dim Driver As String

    'Dim objConexao As OleDbConnection

    Dim strConexao As String

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    objConexao = New SqlConnection

    Session("conexao") = objConexao

     

    strConexao = "SERVER=.\SQLExpress;Database=master.mdf;Trusted_Connection=Yes;"

    With objConexao

    .ConnectionString = strConexao

    .Open()

    End With

     

     

    'Using connection As New SqlConnection("context connection=true")

    ' connection.Open()

    ' ' Use the connection

    'End Using

     

    End Sub

    Protected Sub CmdIncluir_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CmdIncluir.Click

    Dim objComando As SqlCommand

    Dim strSql As String

    Dim objTransacao As SqlTransaction

    Dim blnTransacao As Boolean = False

    Dim intLinhas As Integer

     

    strSql = "INSERT INTO FUNCIONARIO" & vbCrLf & _

    "(NOME,CARGO)" & vbCrLf & _

    "VALUES('" & txtNome.Text & " ','" & txtCargo.Text & " ')"

     

    objComando = New SqlCommand

    objComando.Connection = objConexao

    objComando = objConexao.CreateCommand

     

    If objComando.Connection.State <> ConnectionState.Open Then

    objConexao.ConnectionString = strConexao

    objConexao.Open()

    End If

    objTransacao = objConexao.BeginTransaction

    blnTransacao = True

     

    With objComando

    .Transaction = objTransacao

    .CommandType = CommandType.Text

    .CommandText = strSql

    intLinhas = .ExecuteNonQuery

    End With

     

    objTransacao.Commit()

    blnTransacao = False

    Limpatela()

    GeraComboCadastrados()

    objComando = Nothing

     

     

    End Sub

    Private Sub Limpatela()

    CmbCadastrados.Visible = True

    txtNome.Text = ""

    txtCargo.Text = ""

    CmbCadastrados.SelectedValue = -2

    End Sub

    Protected Sub CmbCadastrados_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles CmbCadastrados.Load

    If Not IsPostBack Then

    GeraComboCadastrados()

    End If

    End Sub

    Private Sub GeraComboCadastrados()

    Dim objComando As SqlCommand

    Dim objLeitura As SqlDataReader

    Dim strSql As String

    Dim intLinhas As Integer

     

    strSql = "SELECT NOME,CODIGO" & vbCrLf & _

    "FROM FUNCIONARIO"

    If objConexao.State <> ConnectionState.Open Then

    objConexao.Open()

    End If

    objComando = objConexao.CreateCommand

    With objComando

    .CommandType = CommandType.Text

    .CommandText = strSql

    objLeitura = .ExecuteReader

    End With

    With objLeitura

    CmbCadastrados.Items.Clear()

    CmbCadastrados.Items.Add("cadastre funcionario")

    CmbCadastrados.Items.FindByText("cadastre funcionario").Value = -1

    While .Read

    CmbCadastrados.Items.Add(.Item("NOME"))

    CmbCadastrados.Items.FindByText(.Item("NOME")).Value = .Item("CODIGO")

    End While

    CmbCadastrados.Items.Add("")

    CmbCadastrados.Items.FindByText("").Value = -2

    CmbCadastrados.SelectedValue = -2

    End With

    objConexao.Close()

    End Sub

    Protected Sub CmbCadastrados_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CmbCadastrados.SelectedIndexChanged

    If CmbCadastrados.SelectedValue = -2 Then

    txtNome.Visible = True

    CmbCadastrados.Visible = False

    Else

    txtNome.Visible = True

    CmbCadastrados.Visible = False

    RecuperaCodigo()

    End If

    End Sub

    Private Sub RecuperaCodigo()

    If CmbCadastrados.SelectedValue = -1 Then

    txtNome.Text = ""

    txtCargo.Text = ""

    txtCodigo.Text = ""

    Else

    txtCodigo.Text = CmbCadastrados.SelectedValue

    Dim objComando As SqlCommand

    Dim strSql As String

    Dim objLeitura As SqlDataReader

    Dim intLinhas As Integer

     

     

    strSql = "SELECT NOME,CARGO FROM FUNCIONARIO" & vbCrLf & _

    "WHERE CODIGO = " & txtCodigo.Text

     

    If objConexao.State <> ConnectionState.Open Then

    objConexao.Open()

    End If

    objComando = objConexao.CreateCommand

     

    With objComando

    .CommandText = strSql

    .CommandType = CommandType.Text

    objLeitura = .ExecuteReader

    End With

     

    With objLeitura

    If .Read Then

    txtNome.Text = .Item("nome")

    txtCargo.Text = .Item("cargo")

    End If

    objConexao.Close()

    End With

     

    End If

    End Sub

    Protected Sub CmdLimpar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CmdLimpar.Click

    Limpatela()

    End Sub

    Protected Sub CmdAlterar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CmdAlterar.Click

    Dim objComando As SqlCommand

    Dim objTransacao As SqlTransaction

    Dim blnTransacao As Boolean = False

    Dim strSql As String

    Dim intLinhas As Integer

    strSql = "UPDATE FUNCIONARIO" & vbCrLf & _

    "SET NOME = '" & txtNome.Text & "'," & vbCrLf & _

    "CARGO = '" & txtCargo.Text & "'" & vbCrLf & _

    "WHERE CODIGO = " & txtCodigo.Text

     

    objComando = New SqlCommand

    objComando.Connection = objConexao

    objComando = objConexao.CreateCommand

     

    If objComando.Connection.State <> ConnectionState.Open Then

    objConexao.ConnectionString = strConexao

    objConexao.Open()

    End If

    objTransacao = objConexao.BeginTransaction

    blnTransacao = True

    With objComando

    .Transaction = objTransacao

    .CommandType = CommandType.Text

    .CommandText = strSql

    intLinhas = .ExecuteNonQuery

    End With

    objTransacao.Commit()

    blnTransacao = False

    Limpatela()

    GeraComboCadastrados()

    objComando = Nothing

    End Sub

    Protected Sub CmdExcluir_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CmdExcluir.Click

    Dim objComando As SqlCommand

    Dim strSql As String

    Dim objTransacao As SqlTransaction

    Dim blnTransacao As Boolean = False

    Dim intLinhas As Integer

    strSql = "DELETE * FROM FUNCIONARIO" & vbCrLf & _

    "WHERE CODIGO =" & txtCodigo.Text

    objComando = New SqlCommand

    objComando.Connection = objConexao

    objComando = objConexao.CreateCommand

    If objComando.Connection.State <> ConnectionState.Open Then

    objConexao.ConnectionString = strConexao

    objConexao.Open()

    End If

    objTransacao = objConexao.BeginTransaction

    blnTransacao = True

     

    With objComando

    .Transaction = objTransacao

    .CommandText = strSql

    .CommandType = CommandType.Text

    intLinhas = .ExecuteNonQuery

    End With

     

    objTransacao.Commit()

    blnTransacao = False

    With CmbCadastrados

    .Items.RemoveAt(.SelectedIndex)

    End With

    Limpatela()

    GeraComboCadastrados()

     

    objComando = Nothing

    End Sub

    End Class

    sexta-feira, 30 de maio de 2008 14:18

Todas as Respostas

  • Cristiano,

     

    Não utilize o banco de dados MASTER para criar suas tabelas, ele é exclusivo do SQL Server e não deve ser alterado a menos que se tenha conhecimento.

     

    Para criar um banco de dados, vá até o SQL Server Management Studio, conecte ao servidor desejado, expanda o item Databases e clique com o botão direito. Vá então até a opção Create database e clique novamente.

     

    Escolha um nome para seu banco de dados e clique em Ok.

     

    Daí expanda o item com o nome do banco de dados criado e depois expanda o item Tables, daí é só criar as suas tabelas.

     

    Daí no seu código ficará:

     

    strConexao = "SERVER=.\SQLExpress;Database=Nome do Database Criado;Trusted_Connection=Yes;"

     

     

    O .MDF que estava em sua string de conexão é caso você utilize um arquivo de banco de dados do SQL Express. Se vc for criar um dentro do Management Studio não será necessário colocar a extensão.

     

     

     

    Aproveite e conheça meu blog técnico - são mais de 200 posts com muitas dicas - www.julianonunes.com

    sexta-feira, 30 de maio de 2008 14:32
  •  

    Oi,

     

    É recomendável também utilizar parameters. Se quiser ver um tutorial simples em Português:

     

    VB.NET: Gestão de Dados em SQL Server - Parte I

    http://vbtuga.blogspot.com/2008/04/vbnet-gesto-de-dados-em-sql-server.html

     

    VB.NET: Gestão de Dados em SQL Server - Parte II

    http://vbtuga.blogspot.com/2008/04/vbnet-gesto-de-dados-em-sql-server_16.html
    sexta-feira, 30 de maio de 2008 19:33
  • juliano, desculpe minha ignorância

    expando o database clico com o botão direito e não aparece create data base e sim new data base

    escolho o nome dou add + ele não aparece em baixo do diretorio data base

     

    é a 1ª vez que uso o sql server 2005

     

    como faço para aparecer o create data base ?

     

    sexta-feira, 30 de maio de 2008 20:35
  • Fazes

    menu Project - Add New Item e escolhes uma SQL Database

    sexta-feira, 30 de maio de 2008 20:45