Usuário com melhor resposta
Não consigo inserir dados na tabela.

Pergunta
-
Olá estou tentando inserir dados na tabela mas não consigo. Segue abaixo o código, onde está o erro?
private
void button1_Click(Object sender, System.EventArgs e){
SqlConnection mySQLCon = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\DBTeste.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"); SqlCommand mySQLCom = mySQLCon.CreateCommand();mySQLCom.set_CommandText(
"Insert Into TbTeste (login, senha) Values ('ryan',123456')");mySQLCon.Open();
mySQLCom.ExecuteNonQuery();
mySQLCon.Close();
}
Obrigado.
terça-feira, 5 de junho de 2007 19:27
Respostas
-
Oi !
O problema está na sua string de conexão. Essa string de conexão, tipicamente utilizada em ambiente web, causa muita confusão no ambiente windows, frequentemente dando a impressão de que a gravação não está acontecendo.
1) Baixe o sql management studio express no site da microsoft
2) Pelo sql management studio express faça um attach do banco dbteste.mdf no seu sql server express
3) mude a string de conexão : "Data Source=.\\SQLEXPRESS;Initial Catalog=DBTeste;Integrated Security=True;Connect Timeout=30"
[]'s
terça-feira, 5 de junho de 2007 22:58 -
Oi !
Confira essa linha : mySQLCon.set_ConnectionString(System.Configuration.ConfigurationSettings.get_AppSettings().get_Item("connectionString"));
Fazendo até mesmo um messageBox.show e um passo a passo. É fato que ele não está conseguindo recuperar a connectionstring.
Depois marca a mensagem lá de cima como resposta...
[]'s
quarta-feira, 6 de junho de 2007 18:00 -
Consegui! Código final!
//Cria Variável universal mySQLCon
SqlConnection mySQLCon;
public void MetInsDt (String Valor1, String Valor2)
{
//Cria mySQLCon e seta parametro de conexão
mySQLCon = new SqlConnection(MyAppSettings.get_Default().get_connectionString());
//Abre conexão
mySQLCon.Open();
//Cria Comando, assigna Con para Com e passa StrComando
SqlCommand mySQLCom = new SqlCommand();
mySQLCom.set_Connection(mySQLCon);
mySQLCom.set_CommandText("INSERT INTO TbTeste (nome, sobrenome) VALUES (@Valor1, @Valor2)");
mySQLCom.get_Parameters().AddWithValue("@Valor1",Valor1);
mySQLCom.get_Parameters().AddWithValue("@Valor2", Valor2);
//Executa Comando
mySQLCom.ExecuteNonQuery();
//Fecha Conexão
mySQLCon.Close();
}
//Evento do Botão1 que envia dados para teste.
private void button1_Click(Object sender, System.EventArgs e)
{
MetInsDt("Casebre", "Casebre2");
}quarta-feira, 6 de junho de 2007 21:29
Todas as Respostas
-
Oi !
O problema está na sua string de conexão. Essa string de conexão, tipicamente utilizada em ambiente web, causa muita confusão no ambiente windows, frequentemente dando a impressão de que a gravação não está acontecendo.
1) Baixe o sql management studio express no site da microsoft
2) Pelo sql management studio express faça um attach do banco dbteste.mdf no seu sql server express
3) mude a string de conexão : "Data Source=.\\SQLEXPRESS;Initial Catalog=DBTeste;Integrated Security=True;Connect Timeout=30"
[]'s
terça-feira, 5 de junho de 2007 22:58 -
Nossa, muito obrigado pela sua ajuda! MUITO bem vindo
Fiz o que você falou e funcionou exatamente! Agora vai outra dúvida
Segue o código.
//No Load do Form inicializa mySQLCon e depois passa ConnectionString
private void Form1_Load(Object sender, System.EventArgs e){
mySQLCon =
new SqlConnection();mySQLCon.set_ConnectionString(
System.Configuration.ConfigurationSettings.get_AppSettings().get_Item("connectionString"));}
{
SqlCommand mySQLCom = new SqlCommand();mySQLCom.set_Connection(mySQLCon);
mySQLCom.set_CommandText(
"INSERT INTO TbTeste (Nome, Sobrenome) VALUES ('primeirnomeII','segundonomeII')");mySQLCon.Open();
mySQLCom.ExecuteNonQuery();
mySQLCon.Close();
}
Quando eu clico no botão da erro no mySQLCon.Open(); o programa diz: The ConnectionString property has not been initialized.
Saberia dizer o porque? Abraços!
quarta-feira, 6 de junho de 2007 15:07 -
Oi !
Confira essa linha : mySQLCon.set_ConnectionString(System.Configuration.ConfigurationSettings.get_AppSettings().get_Item("connectionString"));
Fazendo até mesmo um messageBox.show e um passo a passo. É fato que ele não está conseguindo recuperar a connectionstring.
Depois marca a mensagem lá de cima como resposta...
[]'s
quarta-feira, 6 de junho de 2007 18:00 -
Resolvi assim:
//Cria mySQLCon e seta parametro de conexão
mySQLCon = new SqlConnection(MyAppSettings.get_Default().get_connectionString());
Mas agora o problema é outro (denovo)! Dennes vc tem hotmail? Se tiver poderia passar por favor? Preciso muito de sua ajuda! Voltando ao problema :] Vê o código abaixo, ele está rodando beleza se não fosse o seguinte problema. Eu tenho um método chamado MetInsDt que recebe dois valores Strings Valor1 e Valor2. No exemplo são passados para o método os seguintes valores para as respectivas Strings "Casebre" e "Casebre2". Esse valores deveriam então ser passados o código SQL
mySQLCom.set_CommandText("INSERT INTO TbTeste (login, senha) VALUES (Valor1, Valor2)");
porém não vai, o que fazer?
Código:
//Cria Variável universal mySQLCon
SqlConnection mySQLCon;
public void MetInsDt (String Valor1, String Valor2) //"Casebre","Casebre2"
{
//Cria mySQLCon e seta parametro de conexão
mySQLCon = new SqlConnection(MyAppSettings.get_Default().get_connectionString());
//Abre conexão
mySQLCon.Open();
//Cria Comando, assigna Con para Com e passa StrComando
SqlCommand mySQLCom = new SqlCommand();
mySQLCom.set_Connection(mySQLCon);
mySQLCom.set_CommandText("INSERT INTO TbTeste (login, senha) VALUES (Valor1, Valor2)"); //Problema aqui. Valor1 e Valor2 são passados como Casebre, Casebre2 quando deveriam ser 'Casebre', Casebre2' [SQL].
//Executa Comando
mySQLCom.ExecuteNonQuery();
//Fecha Conexão
mySQLCon.Close();
}
//Evento do Botão1 que envia dados para teste.
private void button1_Click(Object sender, System.EventArgs e)
{
MetInsDt("Casebre", "Casebre2"); //Valores passados.
}quarta-feira, 6 de junho de 2007 20:23 -
Consegui! Código final!
//Cria Variável universal mySQLCon
SqlConnection mySQLCon;
public void MetInsDt (String Valor1, String Valor2)
{
//Cria mySQLCon e seta parametro de conexão
mySQLCon = new SqlConnection(MyAppSettings.get_Default().get_connectionString());
//Abre conexão
mySQLCon.Open();
//Cria Comando, assigna Con para Com e passa StrComando
SqlCommand mySQLCom = new SqlCommand();
mySQLCom.set_Connection(mySQLCon);
mySQLCom.set_CommandText("INSERT INTO TbTeste (nome, sobrenome) VALUES (@Valor1, @Valor2)");
mySQLCom.get_Parameters().AddWithValue("@Valor1",Valor1);
mySQLCom.get_Parameters().AddWithValue("@Valor2", Valor2);
//Executa Comando
mySQLCom.ExecuteNonQuery();
//Fecha Conexão
mySQLCon.Close();
}
//Evento do Botão1 que envia dados para teste.
private void button1_Click(Object sender, System.EventArgs e)
{
MetInsDt("Casebre", "Casebre2");
}quarta-feira, 6 de junho de 2007 21:29