INSERT INTO EXECUTA MAS NAO REGISTRA
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.
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(); }
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.
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.
Faça seu login para responder