Jump to content

Recommended Posts

Posted

Boas pessoal venho cá desta vez porque estou com um grande problema:

É o seguinte:

Sempre que na textbox coloco um numero double (ex:12.4) e tento colocar na base de dados em acess ele coloca mas no formato 124.

Mas se puser com ',' o programa nao me deixa inserir dados, dando me este erro:

Erro.jpg

O codigo que tenho para inserir os dados na tabela é:

try
            {

                string drink = string.Format("insert into Tabela_Bebidas values({0},'{1}',{2},{3})", int.Parse(Cod.Text.ToString()), Nome.Text, decimal.Parse(Preço.Text.ToString()), int.Parse(Quantidade.Text.ToString()));
                OleDbCommand ordem = new OleDbCommand(drink, vcon);
                ordem.ExecuteNonQuery();
                MessageBox.Show("Dados inseridos com sucesso");
                ordem.Dispose();
            }
            catch
            {
               MessageBox.Show("Erro!Não foi possivel inserir dados");
            }

alguem me consegue ajudar a resolver este quebra cabeças?!

P.S - No access o campo 'Preço' esta definido como 'Duplo' e Casas decimais : 'Automatico'

Posted

O problema tem a ver com o formato do numero decimal, tu tens um ponto, e provavelmente a base de dados usa uma virgula.

O que deves fazer é substituir a utilização do string.format para juntar parametros por querys com parametros.

Podes ver exemplos na net:

http://www.dotnetperls.com/sqlparameter

(O exemplo é SQL Server, mas a lógica para outra base de dados é igual)

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Posted

mesmo assim eu fiz como lá diz e da me  erro, o codigo segue a seguir:

OleDbConnection vconnection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Ze Nuno\Desktop\Database11.accdb");

private void Form1_Load(object sender, EventArgs e)
        {
            vconnection.Open();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string sql = "insert into Teste (Codigo,Nome,Altura) values (@Nome,@Nome,@Altura)";
            OleDbCommand co = new OleDbCommand(sql,vconnection);

            co.Parameters.Add(new OleDbParameter("@Codigo",int.Parse(textBox1.Text.ToString())));
           
            co.Parameters.Add(new OleDbParameter("@Nome", textBox2.Text));

            co.Parameters.Add(new OleDbParameter("@Altura", double.Parse(textBox3.Text.ToString())));

            co.ExecuteNonQuery();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            vconnection.Close();
        }

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.