2016-07-30 82 views
0

請幫忙。 我是一個初學者,我試圖保存從Visual Studio 2012訪問,它給我「FormatException was ungandles」。 它表明錯誤是「i = .ExecuteNonQuery()」。我認爲錯誤是「1 =」,但即使當我嘗試沒有「i =」的特定行時,它仍會給出相同的錯誤。最後,它仍然不會保存到數據庫中。 請幫我檢查一下代碼。FormatException在Visual Studio中未處理

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    Dim ms As New Memorystream() 
    Dim arrimage() As Byte 
    If (PictureBox1.Image IsNot Nothing) Then 
     PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat) 
     arrimage = ms.GetBuffer 
     ms.Close() 

    End If 

    With cmd 
     .Connection = cn 
     .CommandText = "INSERT INTO TextBox1(RegNum,Lname,Fname,Oname,Gender,Religion,DOB,Pno,Address,Country,SOorigin,LGA,Faculty,Dept,Level,Passport,Course1,Cource2,Cource3,Course4,Course5,Course6,Course7,Course9,Course10) VALUES(@a0,@a1,@a2,@a3,@a4,@a5,@a6,@a7,@a8,@a9,@a10,@a11,@a12,@a13,@a14,@a15,@a16,@a17,@a18,@a19,@a20,@a21,@a22,@a23,@a24,@a25)" 
     .Parameters.Add("@a0", OleDbType.VarChar).Value = TextBox1.Text 
     .Parameters.Add("@a1", OleDbType.VarChar).Value = TextBox2.Text 
     .Parameters.Add("@a2", OleDbType.VarChar).Value = TextBox3.Text 
     .Parameters.Add("@a3", OleDbType.VarChar).Value = TextBox4.Text 
     .Parameters.Add("@a4", OleDbType.VarChar).Value = ComboBox1.Text 
     .Parameters.Add("@a5", OleDbType.VarChar).Value = TextBox5.Text 
     .Parameters.Add("@a6", OleDbType.Date).Value = DateTimePicker1.Text 
     .Parameters.Add("@a7", OleDbType.Integer).Value = TextBox6.Text 
     .Parameters.Add("@a8", OleDbType.VarChar).Value = TextBox7.Text 
     .Parameters.Add("@a9", OleDbType.VarChar).Value = TextBox8.Text 
     .Parameters.Add("@a10", OleDbType.VarChar).Value = TextBox9.Text 
     .Parameters.Add("@a11", OleDbType.VarChar).Value = TextBox10.Text 
     .Parameters.Add("@a12", OleDbType.VarChar).Value = ComboBox2.Text 
     .Parameters.Add("@a13", OleDbType.VarChar).Value = ComboBox3.Text 
     .Parameters.Add("@a14", OleDbType.VarChar).Value = ComboBox4.Text 
     .Parameters.Add("@a15", OleDbType.Binary).Value = IIf(PictureBox1.Image IsNot Nothing, arrimage, DBNull.Value) 
     .Parameters.Add("@a16", OleDbType.VarChar).Value = ComboBox5.Text 
     .Parameters.Add("@a17", OleDbType.VarChar).Value = ComboBox6.Text 
     .Parameters.Add("@a18", OleDbType.VarChar).Value = ComboBox7.Text 
     .Parameters.Add("@a19", OleDbType.VarChar).Value = ComboBox8.Text 
     .Parameters.Add("@a20", OleDbType.VarChar).Value = ComboBox9.Text 
     .Parameters.Add("@a21", OleDbType.VarChar).Value = ComboBox10.Text 
     .Parameters.Add("@a22", OleDbType.VarChar).Value = ComboBox11.Text 
     .Parameters.Add("@a23", OleDbType.VarChar).Value = ComboBox12.Text 
     .Parameters.Add("@a24", OleDbType.VarChar).Value = ComboBox13.Text 
     .Parameters.Add("@a25", OleDbType.VarChar).Value = ComboBox14.Text 
     i = .ExecuteNonQuery() 
     .Dispose() 
     If (i > 0) Then 
      MsgBox("Saved Successful") 
     End If 
    End With 
End Sub 

末級

+0

替換設置每個參數使用已知有效的值,而該代碼而不是從用戶界面讀取的值。對所有參數執行此操作並檢查它是否保存。依次爲每個參數重新輸入正確的代碼,直到失敗。弄清楚爲什麼會失敗(列值不爲空,錯誤類型等的空值)。您可能需要重複多個參數/列。 – ChrisF

+1

你的表名肯定不是'TextBox1'。 – Andre

回答

0

您將保存日期,在此不顯示,所以:

.Parameters.Add("@a6", OleDbType.Date).Value = DateTimePicker1.Value 
+0

它仍然會拋出錯誤。請儘量幫助我。 – user3288057

+0

它現在說「查詢值和目標字段的數量不相同。」但從外觀看,它們是一樣的。請問我該怎麼辦? – user3288057

+0

仔細檢查你的值。一個或多個是錯誤的。 – Gustav

相關問題