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

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.DataImports
System.Data.SqlClientPartial
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.LoadobjConexao =
New SqlConnectionSession(
"conexao") = objConexaostrConexao =
"SERVER=.\SQLExpress;Database=master.mdf;Trusted_Connection=Yes;" With objConexao.ConnectionString = strConexao
.Open()
End WithstrSql =
"INSERT INTO FUNCIONARIO" & vbCrLf & _ "(NOME,CARGO)" & vbCrLf & _ "VALUES('" & txtNome.Text & " ','" & txtCargo.Text & " ')"objComando =
New SqlCommandobjComando.Connection = objConexao
objComando = objConexao.CreateCommand
objConexao.ConnectionString = strConexao
objConexao.Open()
End IfobjTransacao = objConexao.BeginTransaction
blnTransacao =
True.Transaction = objTransacao
.CommandType = CommandType.Text
.CommandText = strSql
intLinhas = .ExecuteNonQuery
End WithobjTransacao.Commit()
blnTransacao =
FalseLimpatela()
GeraComboCadastrados()
objComando =
NothingCmbCadastrados.Visible =
TruetxtNome.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 ThenGeraComboCadastrados()
End If End Sub Private Sub GeraComboCadastrados() Dim objComando As SqlCommand Dim objLeitura As SqlDataReader Dim strSql As String Dim intLinhas As IntegerstrSql =
"SELECT NOME,CODIGO" & vbCrLf & _ "FROM FUNCIONARIO" If objConexao.State <> ConnectionState.Open ThenobjConexao.Open()
End IfobjComando = objConexao.CreateCommand
With objComando.CommandType = CommandType.Text
.CommandText = strSql
objLeitura = .ExecuteReader
End With With objLeituraCmbCadastrados.Items.Clear()
CmbCadastrados.Items.Add(
"cadastre funcionario")CmbCadastrados.Items.FindByText(
"cadastre funcionario").Value = -1 While .ReadCmbCadastrados.Items.Add(.Item(
"NOME"))CmbCadastrados.Items.FindByText(.Item(
"NOME")).Value = .Item("CODIGO") End WhileCmbCadastrados.Items.Add(
"")CmbCadastrados.Items.FindByText(
"").Value = -2CmbCadastrados.SelectedValue = -2
End WithobjConexao.Close()
End Sub Protected Sub CmbCadastrados_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CmbCadastrados.SelectedIndexChanged If CmbCadastrados.SelectedValue = -2 ThentxtNome.Visible =
TrueCmbCadastrados.Visible =
False ElsetxtNome.Visible =
TrueCmbCadastrados.Visible =
FalseRecuperaCodigo()
End If End Sub Private Sub RecuperaCodigo() If CmbCadastrados.SelectedValue = -1 ThentxtNome.Text =
""txtCargo.Text =
""txtCodigo.Text =
"" ElsetxtCodigo.Text = CmbCadastrados.SelectedValue
Dim objComando As SqlCommand Dim strSql As String Dim objLeitura As SqlDataReader Dim intLinhas As IntegerstrSql =
"SELECT NOME,CARGO FROM FUNCIONARIO" & vbCrLf & _ "WHERE CODIGO = " & txtCodigo.TextobjConexao.Open()
End IfobjComando = objConexao.CreateCommand
.CommandText = strSql
.CommandType = CommandType.Text
objLeitura = .ExecuteReader
End WithtxtNome.Text = .Item(
"nome")txtCargo.Text = .Item(
"cargo") End IfobjConexao.Close()
End WithLimpatela()
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 IntegerstrSql =
"UPDATE FUNCIONARIO" & vbCrLf & _ "SET NOME = '" & txtNome.Text & "'," & vbCrLf & _ "CARGO = '" & txtCargo.Text & "'" & vbCrLf & _ "WHERE CODIGO = " & txtCodigo.TextobjComando =
New SqlCommandobjComando.Connection = objConexao
objComando = objConexao.CreateCommand
objConexao.ConnectionString = strConexao
objConexao.Open()
End IfobjTransacao = objConexao.BeginTransaction
blnTransacao =
True With objComando.Transaction = objTransacao
.CommandType = CommandType.Text
.CommandText = strSql
intLinhas = .ExecuteNonQuery
End WithobjTransacao.Commit()
blnTransacao =
FalseLimpatela()
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 IntegerstrSql =
"DELETE * FROM FUNCIONARIO" & vbCrLf & _ "WHERE CODIGO =" & txtCodigo.TextobjComando =
New SqlCommandobjComando.Connection = objConexao
objComando = objConexao.CreateCommand
If objComando.Connection.State <> ConnectionState.Open ThenobjConexao.ConnectionString = strConexao
objConexao.Open()
End IfobjTransacao = objConexao.BeginTransaction
blnTransacao =
True.Transaction = objTransacao
.CommandText = strSql
.CommandType = CommandType.Text
intLinhas = .ExecuteNonQuery
End WithobjTransacao.Commit()
blnTransacao =
False With CmbCadastrados.Items.RemoveAt(.SelectedIndex)
End WithLimpatela()
GeraComboCadastrados()
objComando =
Nothing End SubEnd
Class
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
-
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 -
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 ?
-