Inquiridor
Problemas insert update caracteres especiais .netprovider firebird

Pergunta
-
Pessoal, Estou com um problema ao tentar inserir ou atualizar campos do tipo varchar que precisam de manter a acentução, o Charset já está configurado para WIN1251 na connection string também, se eu fizer a inserção diretamente pelo SQL manager for Interbase/Firebird a acentuação é mantida mas quando eu monto um command e mando executar os acentos são removidos!!!!!
Todas as Respostas
-
-
Segue abaixo os 3 métodos que eu uso para executar um comando no banco um monta o comando, o outro pega a conexão e o outro executa, só completando eu resolvi o problema mudando o charset para UTF8, mas não identifiquei o motivo para o mesmo!
public bool ExecuteCMDLivre(FbCommand Cmd)
{
FbConnection Conn = new FbConnection();
Conn = GetConnection();
try
{
Conn.Open();
Cmd.Connection = Conn;
Cmd.ExecuteNonQuery();
return true;
}
catch (FbException e)
{
return false;
}
finally { Conn.Close(); }
}public FbConnection GetConnection()
{
dbSet Setting = new dbSet();
FbConnection Conn = new FbConnection(Setting.ConnectionString);
return Conn;
}public int dbWriteUsuarios(int ID_OPERADORES, string NOME, string INSCRICAO, char TIPO_INSCRICAO, string USERNAME, string PASSWORD, string TEMPLATE, string EXCECAO, byte[] FOTO, int ID_SITUACOES, int ID_SISTEMAS, char DESENVOLVEDOR, int ID_GRUPOS_OPERADORES,int ID_USUARIOS)
{
FbCommand cmd;
StringBuilder SqlCmd;
if (ID_OPERADORES == 0)
{
ID_OPERADORES = dbUtil.GetUltId("OPERADORES_TBL", "ID_OPERADORES");
SqlCmd = new StringBuilder("insert into OPERADORES_TBL(ID_OPERADORES, NOME, USUARIO, \"SENHA\", INSCRICAO,TIPO_INSCRICAO,TEMPLATE,EXCECAO,FOTO,ID_SITUACOES, DESENVOLVEDOR,ID_SISTEMAS,id_grupos_operadores,id_usuarios)");
SqlCmd.Append("values (@ID_OPERADORES, @NOME, @USERNAME, @PASSWORD, @INSCRICAO, @TIPO_INSCRICAO,@TEMPLATE,@EXCECAO,@FOTO,@ID_SITUACOES, @DESENVOLVEDOR,@ID_SISTEMAS,@id_grupos_operadores,@id_usuarios)");
dbCopiaPermissoesPerfil(ID_OPERADORES, ID_GRUPOS_OPERADORES);
}
else
{
SqlCmd = new StringBuilder("update OPERADORES_TBL set NOME = @NOME, USUARIO = @USERNAME, \"SENHA\" = @PASSWORD, INSCRICAO = @INSCRICAO, TIPO_INSCRICAO = @TIPO_INSCRICAO, DESENVOLVEDOR= @DESENVOLVEDOR, ID_SISTEMAS=@ID_SISTEMAS,TEMPLATE=@TEMPLATE,EXCECAO=@EXCECAO,FOTO=@FOTO,ID_SITUACOES=@ID_SITUACOES,id_grupos_operadores=@id_grupos_operadores,id_usuarios=@id_usuarios ");
SqlCmd.Append("where ID_OPERADORES = @ID_OPERADORES");
}
cmd = new FbCommand(SqlCmd.ToString());
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("@ID_OPERADORES", FbDbType.Integer).Value = ID_OPERADORES;
cmd.Parameters.Add("@NOME", FbDbType.VarChar, NOME.Length).Value = NOME;
cmd.Parameters.Add("@USERNAME", FbDbType.VarChar, USERNAME.Length).Value = USERNAME;
cmd.Parameters.Add("@PASSWORD", FbDbType.VarChar, PASSWORD.Length).Value = PASSWORD;
cmd.Parameters.Add("@INSCRICAO", FbDbType.VarChar, INSCRICAO.Length).Value = INSCRICAO;
cmd.Parameters.Add("@TIPO_INSCRICAO", FbDbType.Char).Value = TIPO_INSCRICAO;
cmd.Parameters.Add("@DESENVOLVEDOR", FbDbType.Char).Value = DESENVOLVEDOR;
cmd.Parameters.Add("@ID_SISTEMAS", FbDbType.Integer).Value = ID_SISTEMAS;
if (FOTO == null)
{
FOTO = new byte[1];
}
cmd.Parameters.Add("@FOTO", FbDbType.Binary, FOTO.Length).Value = FOTO;
if (TEMPLATE == null) {
TEMPLATE = string.Empty;
}
cmd.Parameters.Add("@TEMPLATE",FbDbType.VarChar,TEMPLATE.Length).Value=TEMPLATE;
cmd.Parameters.Add("@EXCECAO",FbDbType.Char).Value=EXCECAO;
cmd.Parameters.Add("@ID_SITUACOES",FbDbType.Integer).Value=ID_SITUACOES;
cmd.Parameters.Add("@id_grupos_operadores", FbDbType.Integer).Value = ID_GRUPOS_OPERADORES;
cmd.Parameters.Add("@id_usuarios", FbDbType.Integer).Value = ID_USUARIOS;
Connect Conm = new Connect();
Conm.ExecuteCMDLivre(cmd);
return ID_OPERADORES;
}