erro = {"Não foi possível converter o valor do parâmetro de String para Byte."}
08/01/2010
Fala galera.
Estou utilizando o C# 2005 e o SQL2005 a pouco tempo e estou com o seguinte problema. O C# leê todo o programa e no final da o seguinte erro no --- da.InsertCommand.ExecuteReader();
erro = {"Não foi possível converter o valor do parâmetro de String para Byte."}
Segue abaixo o código inteiro.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsApplication1
{
public partial class DadosPessoais : Form
{
public DadosPessoais()
{
InitializeComponent();
}
private void btn_salvar_Click(object sender, EventArgs e)
{
try
{
SqlConnection cs = new SqlConnection("Data Source=DKAUF-PC; Initial Catalog=master; Integrated Security=TRUE");
SqlDataAdapter da = new SqlDataAdapter();
da.InsertCommand = new SqlCommand("INSERT INTO Cadastro(NOME, CPF, RG, ESTADOCIVIL, RUA, NUMERO, BAIRRO, CIDADE, CEP, FONERESIDENCIAL) VALUES(@NOME, @CPF, @RG, @ESTADOCIVIL, @RUA, @NUMERO, @BAIRRO, @CIDADE, @CEP, @FONERESIDENCIAL)", cs);
da.InsertCommand.Parameters.Add("@NOME", SqlDbType.NVarChar).Value = txtNome.Text.ToString();
da.InsertCommand.Parameters.Add("@CPF", SqlDbType.TinyInt).Value = txtCPF.Text;
da.InsertCommand.Parameters.Add("@RG", SqlDbType.TinyInt).Value = txtRG.Text;
da.InsertCommand.Parameters.Add("@ESTADOCIVIL", SqlDbType.NVarChar).Value = txtEstadoCivil.Text;
da.InsertCommand.Parameters.Add("@RUA", SqlDbType.NVarChar).Value = txtRrua.Text;
da.InsertCommand.Parameters.Add("@NUMERO", SqlDbType.TinyInt).Value = txtNumero.Text;
da.InsertCommand.Parameters.Add("@BAIRRO", SqlDbType.NVarChar).Value = txtBairro.Text;
da.InsertCommand.Parameters.Add("@CIDADE", SqlDbType.NVarChar).Value = txtCidade.Text;
da.InsertCommand.Parameters.Add("@CEP", SqlDbType.TinyInt).Value = txtCEP.Text;
da.InsertCommand.Parameters.Add("@FONERESIDENCIAL", SqlDbType.TinyInt).Value = txtFoneResidencial.Text;
cs.Open();
//MessageBox.Show(cs.State.ToString());
da.InsertCommand.ExecuteReader();
cs.Close();
}
catch(Exception erro)
{
MessageBox.Show("ERRO - Dados no inseridos!!");
}
}
}
}
Desde já agradeço a ajuda de todos..
Posts
Pelo que pude observar vc esta com problemas na conversão de valos na hora de adicionar os parametro ao command, muito provavelmente nas conversões de string para TinyInt, observe também o formato dos campos no banco, procure fazer a converser explicita de suas variáveis
da.InsertCommand.Parameters.Add("@NUMERO", SqlDbType.TinyInt).Value = txtNumero.Text;
[Explicita]
da.InsertCommand.Parameters.Add("@NUMERO", SqlDbType.Int).Value = Int.Parse(txtNumero.Text);
08/01/2010
Douglas Leandro
fala Paulo, valeu pela dica, eu alterei como indicaste, tanto no código como no banco, de TinyInt para Int, mas continua dando erro que agora é o seguinte:
erro = {"Valor demasiado grande ou demasiado pequeno para Int32."}
tentei converter para Byte com "BYTECONVERTER " , e outros convert's também, mas não obtive sucesso.
Continuo no aguardo de uma solução.
Obrigado Paulo.
16/02/2010
Eleuterio Gonzalez
Talves a modelagem de seus dados ou a conversão não esteja correta.