我在将数据发送到访问数据库时遇到错误溢出,我的代码就在这里
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
我已经检查了数据类型和所有内容但仍然面临此错误
答案 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个
鸡