vb.net算术运算导致溢出

vb.net算术运算导致溢出,vb.net,math,Vb.net,Math,我有一个文本框,其中我引入了一个数字,数字示例是1860812430041。 我称之为文本框的代码部分是: Convert.ToDouble(cnptxt.Text) Dim cnpp As Double cnpp = Val(cnptxt.Text) Dim cnp As Double If Me.ClientiTableAdapter.InsertQueryClienti(nume, prenume, cnp, varsta, adresa, localitate,

我有一个文本框,其中我引入了一个数字,数字示例是1860812430041。 我称之为文本框的代码部分是:

Convert.ToDouble(cnptxt.Text)
Dim cnpp As Double
cnpp = Val(cnptxt.Text)
Dim cnp As Double
If Me.ClientiTableAdapter.InsertQueryClienti(nume, 
      prenume, cnp, varsta, adresa, localitate, 
      datatxt.Value.ToString("yyyy/MM/dd"), starecivila, 
      numarcopii, venittxt.Text, tipcreditales, rezultat) Then
            MsgBox("Adaugat cu succes in baza de date!")
运行应用程序时,我得到错误“算术运算导致溢出”,它减轻了If条件。 整个代码是

 Convert.ToDouble(cnptxt.Text)
        Convert.ToInt32(numarcopiitxt.Text)
        Convert.ToInt32(venittxt.Text)

        Dim cnpp As Double
        cnpp = Val(cnptxt.Text)
        Dim nrcopii As Integer
        nrcopii = Val(numarcopiitxt.Text)

        Dim nume As String

        Dim prenume As String
        Dim cnp As Double
        Dim varsta As Integer
        Dim adresa As String
        Dim localitate As String
        Dim starecivila As String
        Dim numarcopii As Integer
        Dim data As Date = datatxt.Value.Date
        Dim venit As Integer
        Dim tipcreditales As String
        Dim rezultat As String




        nume = numetxt.Text
        prenume = prenumetxt.Text
        cnp = cnpp
        varsta = varstatxt.Text
        adresa = adresatxt.Text
        localitate = localitatetxt.Text
        starecivila = ComboBox2.SelectedItem.ToString()
        numarcopii = numarcopiitxt.Text
        tipcreditales = ComboBox1.SelectedItem.ToString()
        rezultat = rezultattxt.Text
        venit = venittxt.Text
        data = datatxt.Value.ToString("yyyy/MM/dd")


        If Me.ClientiTableAdapter.InsertQueryClienti(nume, prenume, cnp, varsta, adresa, localitate, datatxt.Value.ToString("yyyy/MM/dd"), starecivila, numarcopii, venittxt.Text, tipcreditales, rezultat) Then
            MsgBox("Adaugat cu succes in baza de date!")
        End If

我尝试插入的DB表的数字设置为已接受。

很可能您在未显示的代码部分中错误地使用了该数字(例如试图将其视为整数)。您显示了
cnpp=Val(cnptxt.Text)
,但您的
InsertQueryClienti
使用了
cnp
,它从未初始化过。为什么要给一个不用的变量赋值,而使用一个从未赋值的变量?(您还需要执行一个
Convert.ToDouble(cnptxt.Text)
,然后将其扔掉;您需要将该
Convert
的结果分配给一个变量。您的代码在两个方面都不起作用。)@user3801004:您应该从观看pluralsight上的一两门专业课程开始。同时,您可能正在做很多事情。试着学习如何使用调试器,一次只写一行代码,然后进行编译,看看它能做什么。好吧,由于您得到的错误来自
InsertQueryClienti
,我们不知道它能做什么,我的建议是什么?复制传递给它的所有变量的值,获取插入操作期间运行的SQL,然后在SQL Server或Access中运行查询,插入从变量复制的值,然后查看查询的实际问题。(您的原始代码或编辑要包含的新代码中都没有包含该值,我们也没有用于为您调试的所有textbox控件或数据库的值。)