String 长度不能小于零vb.net中的参数名称长度错误
我正在从数据库获取数据并存储在dataset中。dataset包含电话号码列表。 我想知道每个电话号码的长度。如果长度为10,则表示将其添加到一个数据表中。或长度大于10表示从电话号码右侧获取10个字符,并将其存储在同一数据表中。这是我的代码。调试代码时,我只获得8000行。但最初数据集包含40700行值。在String 长度不能小于零vb.net中的参数名称长度错误,string,datatable,dataset,substring,vb.net-2010,String,Datatable,Dataset,Substring,Vb.net 2010,我正在从数据库获取数据并存储在dataset中。dataset包含电话号码列表。 我想知道每个电话号码的长度。如果长度为10,则表示将其添加到一个数据表中。或长度大于10表示从电话号码右侧获取10个字符,并将其存储在同一数据表中。这是我的代码。调试代码时,我只获得8000行。但最初数据集包含40700行值。在 datatable达到8000行时出错 my code ------- ada.Fill(ds, "reports.renewal_contact_t ")
datatable达到8000行时出错
my code
-------
ada.Fill(ds, "reports.renewal_contact_t ")
ds.Tables(0).DefaultView.RowFilter = " PHONE NOT like'0'"
dt = ds.Tables(0)
For Each q In dt.Rows
chkphone = q("PHONE").ToString
chkdphone = Regex.Replace(chkphone, "[^\d]", "")
'MessageBox.Show(chkdphone)
If (chkdphone.Length = 10) Then
Dim anyRow As DataRow = dt2.NewRow
anyRow(0) = chkphone.ToString
dt2.Rows.Add(anyRow)
ElseIf (chkdphone.Length >= 10) Then
rsltstring = chkdphone.Substring(chkdphone.Length, -10)
Dim anyrow1 As DataRow = dt2.NewRow
anyrow1(0) = rsltstring.ToString
dt2.Rows.Add(anyrow1)
Else
End If
Next
new_ds.Tables.Add(dt2)
ComboBox1.DataSource = new_ds.Tables(0)
ComboBox1.DisplayMember = "PHONE"
Error
-----
length cant be less than zero parameter name length
在
子字符串
方法中不能使用负长度。从长度中减去10以获得所需字符串的起点:
rsltstring = chkdphone.Substring(chkdphone.Length - 10, 10)
由于需要从该点开始的字符串的其余部分,因此实际上不需要第二个参数:
rsltstring = chkdphone.Substring(chkdphone.Length - 10)
如果我的电话号码是123456789012 na,结果会是3456789012。ur推荐ii给出这样的ans主要条件是电话长度>=10表示我想从右侧检索字符(我想获取10个字符)