ADO.NET - Inserção em tabela - SqlCeException
Bom dia!
Estou desenvolvendo um projeto mobile, e tento fazer uso do código abaixo para inserir em uma tabela
StringBuilder sql = new StringBuilder();
sql.AppendLine("INSERT INTO TB_VISTORIA_PADRAO_FOTO (");
sql.AppendLine(" id_Vistoria");
sql.AppendLine(", id_Pergunta");
sql.AppendLine(", imFoto");
sql.AppendLine(") VALUES (");
sql.AppendLine(" @idVistoria");
sql.AppendLine(", @idPergunta");
sql.AppendLine(", @foto"); _cmd.Parameters.Clear();
_cmd.Parameters.Add(_conexao.CreateParameter("idVistoria", SqlDbType.Int, ParameterDirection.Input, 0, foto.VistoriaPadrao.Id));
_cmd.Parameters.Add(_conexao.CreateParameter("idPergunta", SqlDbType.Int, ParameterDirection.Input, 0, foto.Pergunta.Id));
_cmd.Parameters.Add(_conexao.CreateParameter("foto", SqlDbType.Image, ParameterDirection.Input, 0, foto.Foto)); _cmd.ExecuteNonQuery(); O método "CreateParameter" retorna um objeto do tipo SqlCeParameter. Ao passar pelo método "ExecuteNonQuery", eu recebo esta exceção: There was an error parsing the query. [ Token line number = 9,Token line offset = 3,Token in error = ] O que pode estar ocorrendo? Fico no aguardo, obrigado!
sql.AppendLine("INSERT INTO TB_VISTORIA_PADRAO_FOTO (");
sql.AppendLine(" id_Vistoria");
sql.AppendLine(", id_Pergunta");
sql.AppendLine(", imFoto");
sql.AppendLine(") VALUES (");
sql.AppendLine(" @idVistoria");
sql.AppendLine(", @idPergunta");
sql.AppendLine(", @foto"); _cmd.Parameters.Clear();
_cmd.Parameters.Add(_conexao.CreateParameter("idVistoria", SqlDbType.Int, ParameterDirection.Input, 0, foto.VistoriaPadrao.Id));
_cmd.Parameters.Add(_conexao.CreateParameter("idPergunta", SqlDbType.Int, ParameterDirection.Input, 0, foto.Pergunta.Id));
_cmd.Parameters.Add(_conexao.CreateParameter("foto", SqlDbType.Image, ParameterDirection.Input, 0, foto.Foto)); _cmd.ExecuteNonQuery(); O método "CreateParameter" retorna um objeto do tipo SqlCeParameter. Ao passar pelo método "ExecuteNonQuery", eu recebo esta exceção: There was an error parsing the query. [ Token line number = 9,Token line offset = 3,Token in error = ] O que pode estar ocorrendo? Fico no aguardo, obrigado!
Carlos Nogueira
Curtidas 0
Respostas
Luiz Maia
25/10/2010
Carlos,
Este erro é geralmente por causa de algum erro na montagem da query.
Mas, pelo que vi de sua query, parece que está tudo ok.
É comum este erro também aparecer quando vc faz o select antes de abrir a Conexão, tente alterar a ordem.
Abra a conexão antes e depois monte o select logo abaixo, não sei por que, mas ja vi varios casos onde funcionou!
Aguardo retorno.
Att
Luiz Maia
GOSTEI 0
Carlos Nogueira
25/10/2010
Oi Luiz,
Descobri o problema. Cara, é vergonhoso, mas o problema estava sendo gerado porque esqueci de fechar o parentenses da instrução INSERT, rs... Fiz isso e deu certo. Achei estranho porque nas pesquisas que fiz para esta exceção, diz que no framework 2.0 o CF não reconhece parâmetros nomeados, mas faço uso do 3.5, então não tinha lógica.
Mas tudo bem, como dizem, acontece nas melhores familias, rsrs...
Pode finalizar o post, e obrigado ai pela sua atenção!
Abraços!
GOSTEI 0
Luiz Maia
25/10/2010
Isto mesmo, faltou fechar o paranteses do Value! rsrsr
Tem erro não, precisando, continuamos à sua disposição.
Abraços
Att
Luiz Maia
GOSTEI 0