Usuário com melhor resposta
Erro C# - me ajudem por favor

Pergunta
-
obtive um erro e não estou entendendo, alguem pode me ajudar,
escrevi este codigo para gravar de C# em sql server, mas esta dando o seguinte erro.:
" É necessario declarar a variavel escalar "CodigoID" "
segue o codigo.:
{
{
cmd.CommandText = query;
cmd.CommandType =
CommandType.Text;cmd.Parameters.AddWithValue(
"CodigoID", tb_codigo.Text);cmd.Parameters.AddWithValue(
"Nome", tb_nome.Text);cmd.Connection = conexao;
conexao.Open();
//abrir a conexo aquicmd.ExecuteNonQuery();
// executar o insertconexao.Close();
obrigado, Deus abençoe
- Movido Ari C. Raimundo sexta-feira, 25 de março de 2011 12:11 Movido para fórum apropriado (De:C#)
Respostas
-
Neto,
Se estiver utilizando OleDb os parâmetros devem ser passados como um símbolo de interrogação. Por exemplo:
try
{
// cria comando
var command = new OleDbCommand("INSERT INTO Clientes VALUES (?, ?)", connection);
// parâmetros
command.Parameters.AddWithValue("CodigoID", codigoId);
command.Parameters.AddWithValue("Nome", nome);
// abre conexão
connection.Open();
// executa comando
command.ExecuteNonQuery();
}
catch (SqlException sqlEx)
{
// ...
}
catch (Exception ex)
{
// ...
}
finally
{
// fecha conexão
if (connection.State == ConnectionState.Open)
connection.Close();
}
Att.
Ari C. Raimundo
MCAD, MCTS
http://araimundo.blogspot.com- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 25 de março de 2011 16:13
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 27 de maio de 2011 11:55
Todas as Respostas
-
estou fazendo uma conecção com banco Sql Server, pra gravar informação e não estou conseguindo
segue o erro .:
private
void bt_grava_Click(object sender, EventArgs e)
{
{
conexao.Open();
conexao =
new OleDbConnection();{
sql.Parameters.AddWithValue(
"CodigoID", tb_codigo.Text);sql.Parameters.AddWithValue(
"Nome", tb_nome.Text);}
sql.ExecuteNonQuery();
grava_dados.Close();
conexao.Close();
}
{
}
alguem pode me dar uma mão,
Deus abençoe
- Mesclado Ari C. Raimundo sexta-feira, 25 de março de 2011 12:14 Pergunta duplicada
-
Boas,
Voce ta fazendo mal... o ExecuteReader é para ler dados do SQL por exemplo um select * from tabela.
Para inserir deve fazer o seguinte:
SqlCommand cmd = new SqlCommand(); string query = "INSERT INTO Customer VALUES(@CustomerID,@FirstName,@LastName,@Address,@HomePhone,@CellPhone,@Email)"; cmd.CommandText = query; cmd.CommandType = CommandType.Text; //aqui voce passa os valores da text box para o paramtetro cmd.Parameters.AddWithValue("@CustomerID", txtCustomerID); cmd.Parameters.AddWithValue("@FirstName", txtFirtName.Text ); cmd.Parameters.AddWithValue("@LastName",txtLastName.Text ); cmd.Parameters.AddWithValue("@Address",txtAddress.Text ); cmd.Parameters.AddWithValue("@City",txtCity.Text ); cmd.Parameters.AddWithValue("@StateProvince",txtStateProvince.Text ); cmd.Parameters.AddWithValue("@ZipCode",txtZipCode.Text ); cmd.Parameters.AddWithValue("@Country",txtCountryText ); cmd.Parameters.AddWithValue("@HomePhone",txtHomePhone.Text ); cmd.Parameters.AddWithValue("@CellPhone",txtCellPhone.Text ); cmd.Parameters.AddWithValue("@AltPhone",txtAltPhone.Text ); cmd.Parameters.AddWithValue("@Email",txtEmail.Text ); cmd.Parameters.AddWithValue("@Status","P" ); cmd.Parameters.AddWithValue("@DateAdded",DateTime.Now ); cmd.Connection = conn; conn.open;//abrir a conexção aqui cmd.ExecuteNonQuery();/ executar o insert conn.close() //fechar
- Sugerido como Resposta Levi Domingos quinta-feira, 24 de março de 2011 15:35
-
Bom dia Neto,
Você declarou na sua SQL @CodigoID e @Nome. Ao declarar seus parametros você tamber deverá declarar o "@".
Ficaria assim:
cmd.Parameters.AddWithValue("@CodigoID", tb_codigo.Text);
cmd.Parameters.AddWithValue("@Nome", tb_nome.Text);
Lembre-se, se a resposta foi útil, marque-a.
Peterson Roberto Oliveira Seridonio
Desenvolvedor C# Junior
MCTS Windows 7- Sugerido como Resposta Ari C. Raimundo sexta-feira, 25 de março de 2011 12:10
- Não Sugerido como Resposta Ari C. Raimundo sexta-feira, 25 de março de 2011 12:31
-
Neto, seja apenas um pouco mais paciente e evite ficar duplicando seus posts...
Se ainda ficou alguma dúvida ou erro, poste-os no post inicial mesmo.
Sempre estaremos dispostos a ajudar, apenas algumas vezes demora um pouco mais.
Peterson Roberto Oliveira Seridonio
Desenvolvedor C# Junior
MCTS Windows 7 -
Neto,
Estou enviando a sua thread para o fórum de ADO.NET. Das próximas vezes que tiver alguma dúvida sobre esse assunto poste por lá.
Abraços.
Ari C. Raimundo
MCAD, MCTS
http://araimundo.blogspot.com -
-
Neto,
Se estiver utilizando OleDb os parâmetros devem ser passados como um símbolo de interrogação. Por exemplo:
try
{
// cria comando
var command = new OleDbCommand("INSERT INTO Clientes VALUES (?, ?)", connection);
// parâmetros
command.Parameters.AddWithValue("CodigoID", codigoId);
command.Parameters.AddWithValue("Nome", nome);
// abre conexão
connection.Open();
// executa comando
command.ExecuteNonQuery();
}
catch (SqlException sqlEx)
{
// ...
}
catch (Exception ex)
{
// ...
}
finally
{
// fecha conexão
if (connection.State == ConnectionState.Open)
connection.Close();
}
Att.
Ari C. Raimundo
MCAD, MCTS
http://araimundo.blogspot.com- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 25 de março de 2011 16:13
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 27 de maio de 2011 11:55