Jump to content
marioverdini

error converting data type nvarchar to numeric

Recommended Posts

marioverdini

Boa a Tarde a todos estou tentando salvar um regitro no banco de dados mas ao clicar no botao salvar me aparece a msn 
error converting data type nvarchar to numeric 
Gostaria da ajuda do forum obrigado

Private Sub btnSave_Click(sender As System.Object, e As System.EventArgs) Handles btnSave.Click
        If Len(Trim(cmbPurchaseType.Text)) = 0 Then
            MessageBox.Show("Please select purchase type", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            cmbPurchaseType.Focus()
            Exit Sub
        End If
        If Len(Trim(cmbCompany.Text)) = 0 Then
            MessageBox.Show("Please select company", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            cmbCompany.Focus()
            Exit Sub
        End If
        If DataGridView1.Rows.Count = 0 Then
            MessageBox.Show("Sorry no product info added to grid", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            Exit Sub
        End If
        If Len(Trim(txtTaxPer.Text)) = 0 Then
            MessageBox.Show("Please enter tax %", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            txtTaxPer.Focus()
            Exit Sub
        End If
        Try
            con = New SqlConnection(cs)
            con.Open()
            Dim cb As String = "insert into Purchase(PI_ID, Date, PurchaseType, Company, SubTotal, TaxPer, TaxAmount, GrandTotal, Remarks) VALUES (@d1,@d2,@d3,@d4,@d5,@d6,@d7,@d8,@d9)"
            cmd = New SqlCommand(cb)
            cmd.Parameters.AddWithValue("@d1", txtID.Text)
            cmd.Parameters.AddWithValue("@d2", Convert.ToDateTime(dtpDate.Value.Date))
            cmd.Parameters.AddWithValue("@d3", cmbPurchaseType.Text)
            cmd.Parameters.AddWithValue("@d4", cmbCompany.Text)
            cmd.Parameters.AddWithValue("@d5", txtSubTotal.Text)
            cmd.Parameters.AddWithValue("@d6", txtTaxPer.Text)
            cmd.Parameters.AddWithValue("@d7", txtTaxAmount.Text)
            cmd.Parameters.AddWithValue("@d8", txtGrandTotal.Text)
            cmd.Parameters.AddWithValue("@d9", txtRemarks.Text)
            cmd.Connection = con
            cmd.ExecuteNonQuery()
            con.Close()
            con = New SqlConnection(cs)
            con.Open()
            Dim cb1 As String = "insert into Purchase_Product(PurchaseID,ProductID,Quantity,Price,TotalAmount) VALUES (" & txtID.Text & ",@d1,@d2,@d3,@d4)"
            cmd = New SqlCommand(cb1)
            cmd.Connection = con
            ' Prepare command for repeated execution
            cmd.Prepare()
            ' Data to be inserted
            For Each row As DataGridViewRow In DataGridView1.Rows
                If Not row.IsNewRow Then
                    cmd.Parameters.AddWithValue("@d1", row.Cells(0).Value)
                    cmd.Parameters.AddWithValue("@d2", row.Cells(3).Value)
                    cmd.Parameters.AddWithValue("@d3", row.Cells(4).Value)
                    cmd.Parameters.AddWithValue("@d4", row.Cells(5).Value)
                    cmd.ExecuteNonQuery()
                    cmd.Parameters.Clear()
                End If
            Next
            con.Close()
            LogFunc(lblUser.Text, "added the new purchase having purchase ID '" & txtID.Text & "'")
            MessageBox.Show("Successfully saved", "Record", MessageBoxButtons.OK, MessageBoxIcon.Information)
            btnSave.Enabled = False
            con.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        frmProductRecord.lblSet.Text = "Purchase"
        frmProductRecord.Reset()
        frmProductRecord.ShowDialog()
    End Sub

 

Share this post


Link to post
Share on other sites
Gnrtuga

 Boas, assim à primeira vista é um erro de conversão, converte primeiro o valor a inserir na base de dados no formato que é esperado na base de dados.

Não te esqueças que apesar de tu introduzires um número numa caixa de texto, o compilador vai interpretar esse número como texto.

Boa sorte.

Edited by Gnrtuga
Esclarecimento adicional

Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Share this post


Link to post
Share on other sites
Gnrtuga

Bem em princípio não é difícil, tens que ver qual o nome do campo em que introduzes um número e depois fazes qualquer coisa como:

convert.toint32(nome-do-campo-a-converter.text)

Qualquer coisa podes sempre fazer uma pesquisa sobre o assunto no Google ou no YouTube, que de certeza que encontras montes de tutoriais onde explicam bem o assunto.


Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Share this post


Link to post
Share on other sites
marioverdini

Vou te dizer a verdade ja procurei de tudo mas explicam de uma for nao e a mesma q esta na minha duvida mas agradeco pela sua atenção 

Share this post


Link to post
Share on other sites
Gnrtuga

 Boas, de momento estou sem computador e sem tempo (ando a responder pelo telemóvel)

Preciso que faças três coisas, primeiro que voltes a meter o código, mas clica no símbolo <>  e escolhe a opção C (...) de forma a ser mais fácil de ler.

Depois preciso de um print screen do formulário, de preferência com o nome dos Campos.

Finalmente o nome das tabelas e dos campos e respectivos tipos da tua base de dados .

Só assim conseguirei ajudar.


Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Share this post


Link to post
Share on other sites
marioverdini

e como te envio o formulario pq o forum nao me deixar por imagens 

Share this post


Link to post
Share on other sites
marioverdini

sera q por email naos eia mais facil te enciar a imagem do formulario 

 

Share this post


Link to post
Share on other sites

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.