#vb.net #math
#vb.net #математика
Вопрос:
У меня есть текстовое поле, в которое я ввожу число, пример числа — 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, в которую я пытаюсь вставить, имеет номер, установленный как принятый.
Комментарии:
1. скорее всего, вы что-то делаете с этой цифрой неправильно (например, пытаетесь обработать ее как целое число) в части кода, которую вы не показали
2. Вы показываете
cnpp = Val(cnptxt.Text)
, но вашеInsertQueryClienti
использованиеcnp
, которое никогда не инициализируется. Почему вы присваиваете значение переменной, которую вы не используете, и используете переменную, которой вы никогда не присваиваете значение? (Вы также выполняете a,Convert.ToDouble(cnptxt.Text)
которое затем отбрасываете; вам нужно присвоить результат этогоConvert
переменной. Ваш код нефункциональен несколькими способами.)3. @user3801004: Вам следует начать с просмотра одного-двух профессиональных курсов по pluralsight.
4. Возможно, вы делаете слишком много одновременно. Попробуйте научиться использовать отладчик и писать только по одной строке за раз, а затем скомпилируйте, чтобы посмотреть, что он делает.
5. Ну, поскольку ошибка, которую вы получаете, исходит от
InsertQueryClienti
, и мы не знаем, к чему это приводит, мое предложение? Скопируйте значения всех переменных, которые вы передаете в него, получите SQL, который выполняется во время операции вставки, и запустите запрос в SQL Server или Access, подключив значения, которые вы скопировали из переменных, и посмотрите, в чем фактическая проблема с запросом. (Вы не включили это ни в свой исходный код, ни в новый код, который вы отредактировали для включения, и у нас нет значений всех элементов управления textbox или вашей базы данных, чтобы использовать их для отладки для вас.)