INSERT INTO EXECUTA MAS NAO REGISTRA

LUIS.HERRERA 21/02/2014 08:47:07
#435069
Rodrigo além do que o Tecla disse, primeiro teste sempre quanto tem problemas no banco, inclusive porque analisando a linha com dados muitas vezes se verifica inconsistência neles, ou erros de caracteres na string montada, já se identifica se o problema é no seu programa (código, conexão, etc.. ) ou no comando de gravação/select com o banco.

Bem outra coisa, mude sua forma de acesso ao banco com uso de parâmetros para evitar injection pelo SQL, pois como esta seu código é facilmente adulterado pelo usuário, dando acesso do banco em várias informações, um grande risco.

faça algo assim, incluindo também o tratamento de erro que pode te ajudar muito sempre.

try
{
AbrirConexao();

Int32 novoPerfilID = 0;
string sql = [Ô]INSERT INTO PERFIL (NOME,OBS,INATIVO) VALUES (@NOME,@OBS,@INATIVO); [Ô]
+ [Ô]SELECT CAST(scope_identity() AS int)[Ô];

SqlCommand cmd = new SqlCommand(sql, cn);
cmd.Parameters.Add([Ô]@NOME[Ô], SqlDbType.NVarChar);
cmd.Parameters[[Ô]@NOME[Ô]].Value = myPerfil.NOME;
cmd.Parameters.Add([Ô]@OBS[Ô], SqlDbType.NVarChar);
cmd.Parameters[[Ô]@OBS[Ô]].Value = myPerfil.OBS;
cmd.Parameters.Add([Ô]@INATIVO[Ô], SqlDbType.Bit);
cmd.Parameters[[Ô]@INATIVO[Ô]].Value = myPerfil.INATIVO;
novoPerfilID = Convert.ToInt32(cmd.ExecuteScalar());
return novoPerfilID;

}
catch (SqlException)
{
throw;
}
catch (Exception)
{
throw;
}
finally
{ FecharConexao(); }
OMAR2011 21/02/2014 15:20:50
#435106
Segue o código com os tipos dos campos
lblValor = Convert.ToDouble(MaskValor.Text)
lblTotal = Convert.ToDouble(MaskTotal.Text)
lblData = Convert.ToString(MaskData.Text)
lblHora = Convert.ToString(CBHora.Text)
Isto não é tipo de campo.
Tipo de campo é,varchar2,char,long raw,number,date etc.
Quanto ao insert ele funciona mas fiz deste jeito
Dim orale As New OleDbConnection([Ô]Provider=msdaora;Data Source=Xe;User Id=system;Password=12qw[Ô])
orale.Open()
comandosql = [Ô][Ô]
mdInserir = New System.Data.OleDb.OleDbCommand()
cmdInserir.Connection = orale
cmdInserir.CommandText = comandosql

cmdInserir.ExecuteNonQuery()

MsgBox([Ô]Cadastro realizado com sucesso[Ô], vbInformation, [Ô]Sucesso[Ô])
Gravado no banco sem problemas.
Página 2 de 2 [12 registro(s)]
Faça seu login para responder