Usuário com melhor resposta
Conexão com Sql Server

Pergunta
-
Tenho um banco de dados e algumas tabelas já populadas. Doploquei um datagrid, criei uma conexão pelo wizard do C# e fiz um dataset. Liguei o grid a esses caras e ele carregou o nome das colunas. O que passa que essa tabela está populada e não consigo carregar os dados no Data Grid. Como eu abro a conexão? Falta alguma coisa a mais? Comecei a brincar com C# e já estou gostando. Esse trabalho é para a Facul, um tal de PIM que deve estar pronto nesse mes e ainda estou apnhando nisso.
- Movido C. Augusto Proiete [MVP]Moderator sexta-feira, 4 de junho de 2010 10:45 Movido para o fórum apropriado (De:C#)
Respostas
-
Segue exemplo para se conectar ao banco, realizar a instrução SQL (neste exemplo é a de INSERT no banco), gravar usando SQLCommand e fechar a conexão:
try { //verifica se os campos estão com dados para poder gravar if (txtNome.Text != string.Empty && txtEndereco.Text != string.Empty && txtBairro.Text != string.Empty && ddlEstado.SelectedItem.ToString() != string.Empty && txtTelefone.Text != string.Empty && txtCelular.Text != string.Empty && txtEmail.Text != string.Empty) { //Instancio o SqlConnection, passando como parâmetro a string de conexão ao banco SqlConnection conn = new SqlConnection(@"Data Source=WELLINGT-45545B\SQLEXPRESS; Initial Catalog=Clientes;Integrated Security=True;Pooling=False"); //Instancio o SqlCommand, responsável pelas instruções SQL e //Passo ao SqlCommand que a conexão que ele usará é o SqlConnection SqlCommand comm = new SqlCommand(); comm.Connection = conn; //No CommandText do SqlCommand, passo a instrução SQL referente a inserção dos dados comm.CommandText = "INSERT INTO tbCLIENTES (NOMECLIENTE, ENDERECOCLIENTE, " + " BAIRRO, ESTADO, TELEFONECLIENTE, CELULARCLIENTE, EMAILCLIENTE) " + //Nos Values, passo os valores parametrizados, referentes aos digitados pelo usuário nos controles " VALUES (@NOMECLIENTE, @ENDERECOCLIENTE, @BAIRRO, @ESTADO, " + " @TELEFONECLIENTE, @CELULARCLIENTE, @EMAILCLIENTE) "; comm.Parameters.AddWithValue("@NOMECLIENTE", txtNome.Text); comm.Parameters.AddWithValue("@ENDERECOCLIENTE", txtEndereco.Text); comm.Parameters.AddWithValue("@BAIRRO", txtBairro.Text); comm.Parameters.AddWithValue("@ESTADO", ddlEstado.SelectedItem.ToString()); comm.Parameters.AddWithValue("@TELEFONECLIENTE", txtTelefone.Text); comm.Parameters.AddWithValue("@CELULARCLIENTE", txtCelular.Text); comm.Parameters.AddWithValue("@EMAILCLIENTE", txtEmail.Text); //Abro a conexão, uso o método ExecuteNonQuery e fecho a conexão conn.Open(); comm.ExecuteNonQuery(); conn.Close(); //Exibo ao usuário a mensagem de inserção efetuada com sucesso MessageBox.Show("Dados atualizados com sucesso!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Informe os valores corretamente para completar o cadastro. " + "Somente os campos Celular e Email podem ficar vazios ", "Erro do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception) { MessageBox.Show("Ocorreu um erro ao gravar os dados!", "Mensagem de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
Se a resposta for útil, favor votar como útil para que ajude outros usuários com a mesma dúvida | Dicas e artigos sobre .NET em http://programandodotnet.wordpress.com- Sugerido como Resposta Wellington Balbo de Camargo sábado, 5 de junho de 2010 00:37
- Marcado como Resposta Harley AraujoModerator segunda-feira, 7 de junho de 2010 13:17
Todas as Respostas
-
Segue exemplo para se conectar ao banco, realizar a instrução SQL (neste exemplo é a de INSERT no banco), gravar usando SQLCommand e fechar a conexão:
try { //verifica se os campos estão com dados para poder gravar if (txtNome.Text != string.Empty && txtEndereco.Text != string.Empty && txtBairro.Text != string.Empty && ddlEstado.SelectedItem.ToString() != string.Empty && txtTelefone.Text != string.Empty && txtCelular.Text != string.Empty && txtEmail.Text != string.Empty) { //Instancio o SqlConnection, passando como parâmetro a string de conexão ao banco SqlConnection conn = new SqlConnection(@"Data Source=WELLINGT-45545B\SQLEXPRESS; Initial Catalog=Clientes;Integrated Security=True;Pooling=False"); //Instancio o SqlCommand, responsável pelas instruções SQL e //Passo ao SqlCommand que a conexão que ele usará é o SqlConnection SqlCommand comm = new SqlCommand(); comm.Connection = conn; //No CommandText do SqlCommand, passo a instrução SQL referente a inserção dos dados comm.CommandText = "INSERT INTO tbCLIENTES (NOMECLIENTE, ENDERECOCLIENTE, " + " BAIRRO, ESTADO, TELEFONECLIENTE, CELULARCLIENTE, EMAILCLIENTE) " + //Nos Values, passo os valores parametrizados, referentes aos digitados pelo usuário nos controles " VALUES (@NOMECLIENTE, @ENDERECOCLIENTE, @BAIRRO, @ESTADO, " + " @TELEFONECLIENTE, @CELULARCLIENTE, @EMAILCLIENTE) "; comm.Parameters.AddWithValue("@NOMECLIENTE", txtNome.Text); comm.Parameters.AddWithValue("@ENDERECOCLIENTE", txtEndereco.Text); comm.Parameters.AddWithValue("@BAIRRO", txtBairro.Text); comm.Parameters.AddWithValue("@ESTADO", ddlEstado.SelectedItem.ToString()); comm.Parameters.AddWithValue("@TELEFONECLIENTE", txtTelefone.Text); comm.Parameters.AddWithValue("@CELULARCLIENTE", txtCelular.Text); comm.Parameters.AddWithValue("@EMAILCLIENTE", txtEmail.Text); //Abro a conexão, uso o método ExecuteNonQuery e fecho a conexão conn.Open(); comm.ExecuteNonQuery(); conn.Close(); //Exibo ao usuário a mensagem de inserção efetuada com sucesso MessageBox.Show("Dados atualizados com sucesso!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Informe os valores corretamente para completar o cadastro. " + "Somente os campos Celular e Email podem ficar vazios ", "Erro do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception) { MessageBox.Show("Ocorreu um erro ao gravar os dados!", "Mensagem de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
Se a resposta for útil, favor votar como útil para que ajude outros usuários com a mesma dúvida | Dicas e artigos sobre .NET em http://programandodotnet.wordpress.com- Sugerido como Resposta Wellington Balbo de Camargo sábado, 5 de junho de 2010 00:37
- Marcado como Resposta Harley AraujoModerator segunda-feira, 7 de junho de 2010 13:17
-
Eu ainda não testei o seu exemplo, vou fazê-lo agora. Fiz assim como abaixo e diz que não é possível abrir uma conexão física com o banco, pois o processo está sendo usado por outro. Eu fechei o Management do Sql, fechei a interface do banco e continua. Removi todos os dataset que construi no banco e assim mesmo continua a dar o erro. Eis meu exemplo, bem simplório.
string
connectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Arquivos de programas\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Data\\DB_UNIP.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True";
SqlConnection sqlConn = new SqlConnection(connectionString);
sqlConn.Open();
-
Estranho cara, experimenta colocar a arroba antes das aspas, para que fique desta forma:
connectionString = @"Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Arquivos de programas\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Data\\DB_UNIP.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True" ;
Não sei se tem a ver, mais quem sabe...
Abraços.
Se a resposta for útil, favor votar como útil para que ajude outros usuários com a mesma dúvida | Dicas e artigos sobre .NET em http://programandodotnet.wordpress.com -
Eu ainda não testei o seu exemplo, vou fazê-lo agora. Fiz assim como abaixo e diz que não é possível abrir uma conexão física com o banco, pois o processo está sendo usado por outro. Eu fechei o Management do Sql, fechei a interface do banco e continua. Removi todos os dataset que construi no banco e assim mesmo continua a dar o erro. Eis meu exemplo, bem simplório.
string
connectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Arquivos de programas\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Data\\DB_UNIP.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True" ;
SqlConnection sqlConn = new SqlConnection (connectionString);
sqlConn.Open();
Olá amigo porque tenta abrir o MDF e não conectar no servidor? Utilize como no exemplo que o amigo passou, o Data Source indica a instância que você irá utilizar.SqlConnection conn = new SqlConnection(@"Data Source=WELLINGT-45545B\SQLEXPRESS;
Initial Catalog=Clientes;Integrated Security=True;Pooling=False" );