在访问数据库中添加数据时vb.net中出现溢出错误

时间:2018-04-10 12:23:50

标签: vb.net

我在将数据发送到访问数据库时遇到错误溢出,我的代码就在这里

 Try
        Dim sqlconn As New OleDb.OleDbConnection
        Dim sqlquery As New OleDb.OleDbCommand
        Dim connString As String
        connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\NSM.accdb"
        sqlconn.ConnectionString = connString
        sqlquery.Connection = sqlconn
        sqlconn.Open()
        sqlquery.CommandText = "INSERT INTO Student_Information([Roll_Number], [Class], [Section], [First_Name], [Last_Name], [Gender], [Date_Of_Birth], [Category], [Religion], [Cast], [Mobile_Number], [Email], [Admission_Date], [Image], [Father_Name], [Father_Phone], [Father_Occupation], [Mother_Name], [Mother_Phone], [Mother_Occupation])VALUES(@rno, @class, @section, @fname, @lname, @gen, @dob, @cat, @rel, @cast, @mnum, @email, @adate, @img, @fathname, @fathnum, @fathocc, @mname, @mnum, @mocc)"
        sqlquery.Parameters.AddWithValue("@rnum", Convert.ToInt64(rnum.Text))
        sqlquery.Parameters.AddWithValue("@class", class1.SelectedItem.ToString)
        sqlquery.Parameters.AddWithValue("@section", section.SelectedItem.ToString)
        sqlquery.Parameters.AddWithValue("@fname", fname.Text)
        sqlquery.Parameters.AddWithValue("@lname", lname.Text)
        sqlquery.Parameters.AddWithValue("@gen", gender.SelectedItem.ToString)
        sqlquery.Parameters.AddWithValue("@dob", dob.Value.ToShortDateString)
        sqlquery.Parameters.AddWithValue("@cat", cat.SelectedItem.ToString)
        sqlquery.Parameters.AddWithValue("@rel", rel.Text)
        sqlquery.Parameters.AddWithValue("@cast", cast.Text)
        sqlquery.Parameters.AddWithValue("@mnum", Convert.ToInt64(mnum.Text))
        sqlquery.Parameters.AddWithValue("@email", email.Text)
        sqlquery.Parameters.AddWithValue("@adate", adate.Value.ToShortDateString)
        sqlquery.Parameters.AddWithValue("@img", Str)
        sqlquery.Parameters.AddWithValue("@fathname", "fname")
        sqlquery.Parameters.AddWithValue("@fathnum", 9876543210)
        sqlquery.Parameters.AddWithValue("@fathocc", "fathocc")
        sqlquery.Parameters.AddWithValue("@mname", "mname")
        sqlquery.Parameters.AddWithValue("@mnum", 7894561230)
        sqlquery.Parameters.AddWithValue("@mocc", "mocc")
        sqlquery.ExecuteNonQuery()
        sqlconn.Close()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

我已经检查了数据类型和所有内容但仍然面临此错误

2 个答案:

答案 0 :(得分:0)

fathnum和mnum - 假设它们是长整数。

长整数 - 对于范围从-2,147,483,648到+2,147,483,647的整数。存储要求是四个字节。高于/低于此值的任何东西都会导致溢出。

要存储大小为64位的数字,您需要使用DOUBLE或DECIMAL类型,或者您可以使用字符串。

如果你没有对它们进行数学运算,你可能想在它们上面使用一个字符串。

参考:https://support.office.com/en-us/article/set-the-field-size-ba65e5a7-2e6f-4737-8e72-36b93f966a33

答案 1 :(得分:0)

你有一个参数@rnum在sql语句中没有@rnum,我相信它应该是@rno ... 或者将SQL中的@rno更改为@rnum,无论他们需要匹配:)

H个