2014-01-06 29 views
0

我有这样的代码:错误:从字符串转换“串行”键入“整数”是无效的

Dim dv As New DataView(_DataSet.Tables(0)) 
     ' select deleted rows 
     dv.RowStateFilter = DataViewRowState.Deleted 
     For _irow As Long = 0 To dv.Table.Rows.Count - 1 
      If Not IsDBNull(dv!serial) Then 
       txtSerial.Text = (dv!serial).ToString 
       Dim strconnection As String = "Data Source=EASMAR-PC;Initial Catalog=Database Connection;Integrated Security=True;" 
       Dim _cn As SqlConnection = New SqlConnection(strconnection) 
       _cn.Open() 
       Dim cmd As New SqlCommand 
       cmd.CommandText = "Delete from tblCustomer where serial= " & (dv!serial).ToString 
      End If 
     Next 

我只是循环槽的数据视图(如果rowwstate被删除时,从数据库中删除) 。

我收到此错误:Conversion from string "serial" to type 'Integer' is not valid. 在这条线:If Not IsDBNull(dv!serial) Then

任何想法?

+0

可能重复[从字符串转换 “” 长期是无效的(http://stackoverflow.com/questions/14726120 /从字符串到字符串的转换是无效的) – varocarbas

+0

PS:实际的副本是http://stackoverflow.com/questions/20934242/conversion-from-string-to-type-long-是无效的(但是,只要它没有任何回复/接受的答案,它就不能被设置为“官方副本”)。 – varocarbas

+0

好的。还有一件事;数据库中应该包含什么类型的“serial”? – user2968155

回答

0

您需要访问DataView的ROW(integer)和COLUMN。由于您正在使用String(Serial)作为第一个参数,它应该是Row index整数,因此您会收到错误消息。第一行像0一样。

dtvRow(0)("Serial") 
你的情况

dv(_irow)(serial) 

可帮助:)

相关问题