Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何检查每列上的DataRow.isdbnull并将其替换为值_Vb.net - Fatal编程技术网

Vb.net 如何检查每列上的DataRow.isdbnull并将其替换为值

Vb.net 如何检查每列上的DataRow.isdbnull并将其替换为值,vb.net,Vb.net,我将数据从Excel导入到datatable,我必须遍历每一列进行计算。我的列的类型为Double、date和string。我有时会遇到Null reference异常,因为某些列可能缺少数据。在双精度的情况下,如何将dbnull自动替换为0,在日期的情况下,如何将dbnull替换为00/00/00。这是我的部分代码 Dim dict As Dictionary(Of String, List(Of DataRow)) = dt.AsEnumerable() _ .GroupB

我将数据从Excel导入到datatable,我必须遍历每一列进行计算。我的列的类型为Double、date和string。我有时会遇到Null reference异常,因为某些列可能缺少数据。在双精度的情况下,如何将dbnull自动替换为0,在日期的情况下,如何将dbnull替换为00/00/00。这是我的部分代码

 Dim dict As Dictionary(Of String, List(Of DataRow)) = dt.AsEnumerable() _
        .GroupBy(Function(x) x.Field(Of String)("USER_picking"), Function(y) y) _
        .ToDictionary(Function(x) x.Key, Function(y) y.ToList())




        datasource.Columns.Add("Date", GetType(String))
        datasource.Columns.Add("USERID", GetType(String))
        datasource.Columns.Add("Number_Ords", GetType(Integer))
        datasource.Columns.Add("Total_Pkg", GetType(Double))
        datasource.Columns.Add("Orders", GetType(Double))
        datasource.Columns.Add("Packages", GetType(Double))
        datasource.Columns.Add("Orders1", GetType(Int32))
        datasource.Columns.Add("Packages1", GetType(Double))
        datasource.Columns.Add("Orders2", GetType(Int32))
        datasource.Columns.Add("Packages2", GetType(Double))
        datasource.Columns.Add("Orders3", GetType(Int32))
        datasource.Columns.Add("Packages3", GetType(Double))
        datasource.Columns.Add("Orders4", GetType(Int32))
        datasource.Columns.Add("Packages4", GetType(Double))
        datasource.Columns.Add("Orders5", GetType(Int32))
        datasource.Columns.Add("Packages5", GetType(Double))
        datasource.Columns.Add("Orders6", GetType(Int32))
        datasource.Columns.Add("Packages6", GetType(Double))


        For Each id As String In dict.Keys

            Dim OrderList As New List(Of Double)
            Dim rows As List(Of DataRow) = dict(id)
            For Each row As DataRow In rows

                Dim current As Double = (row("packages"))
                OrderList.Add(current)

                'Timelist.Add(currenttime)
            Next row

            Dim currenttime = From row In rows   '''' expcetion here
                                 Let time = row.Field(Of Date)("paid")
                                 Where (time.TimeOfDay >= New TimeSpan(8, 0, 0) AndAlso time.TimeOfDay <= New TimeSpan(10, 0, 0))
                                 Select paid = row.Item("paid"), packages = row.Item("packages") Distinct

            Dim plist As New List(Of Date)
            For Each p In currenttime
                plist.Add(p.paid)
            Next
            Dim palist As New List(Of Double)
            For Each pa In currenttime
                palist.Add(pa.packages)
            Next

DBNull表示缺少某些数据,NullReference表示对象不存在。查看WHERE子句是否导致未选择任何内容,这可能/将导致下一行上的行引用抛出所述dbNull而非nullReference异常的nRestory I should。WHERE子句在一个空单元格之前选择了一些行。