Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.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 对于每个sql reader_Vb.net - Fatal编程技术网

Vb.net 对于每个sql reader

Vb.net 对于每个sql reader,vb.net,Vb.net,我有一份报告,每5分钟生成一份excel表格,其中有colums,如Department IDDeptID,并在今天出售ArticalesqtySold。我希望我的VB应用程序打开这个excel文件,读取每个部门ID,选择最畅销的产品并将其绑定到DataGridViewer。这是我的excel表格的一个简单版本 部门物品数量 01香蕉2 apple 3 02橙色4 apple

我有一份报告,每5分钟生成一份excel表格,其中有colums,如Department IDDeptID,并在今天出售ArticalesqtySold。我希望我的VB应用程序打开这个excel文件,读取每个部门ID,选择最畅销的产品并将其绑定到DataGridViewer。这是我的excel表格的一个简单版本

部门物品数量

01香蕉2

                   apple              3
02橙色4

                   apple              5
这是我不起作用的代码

WithEvents bsData1 As New BindingSource
Private FileName1 As String = IO.Path.Combine(Application.StartupPath, "C:\WIN\SA022.xls")
Private SheetName1 As String = "Data"
Private ConnectionNoHeader1 As String = "provider= Microsoft.ACE.OLEDB.12.0; data source='{0}';Extended Properties=""Excel 12.0; HDR=yes;"""


Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim Dept(0 To 2) As String
    Dept(0) = "01"
    Dept(1) = "02"
     Dim DeptNum As String


Using cn As New OleDbConnection With {.ConnectionString = String.Format(ConnectionNoHeader1, FileName1)}
        cn.Open()
        For Each DeptNum In Dept
            Dim cmd As OleDbCommand = New OleDbCommand(
                <Text>
                SELECT 
                    DeptID,
                         Article,
                              QTYSOLDTHISDAY


                FROM [<%= SheetName1 %>$]


WHERE DeptID = DeptNum and QTYSOLDTHISDAY=(select max(QTYSOLDTHISDAY) from [<%= 

SheetName1 %>$] where DeptID =  DeptNum )
</Text`>.Value,
                        cn
                )
                Dim dt As New DataTable
                dt.Load(cmd.ExecuteReader)
                dt.AcceptChanges()
                bsData1.DataSource = dt
                DataGridView2.DataSource = bsData1
            Next DeptNum
        End Using
    End Sub
OP在以下评论中指出的问题:


我在gridview中找不到下一个循环。如果我只在select语句中输入部门ID,它会起作用,但我不能对每个部门ID都这样做,谢谢

什么不起作用?从电子表格检索到的数据不正确?网格绑定不起作用?你必须说得更具体些。我在gridview中没有下一个循环的内容。如果我只是在select语句中输入部门ID,这是可行的,但我不能对每个部门ID都这样做,谢谢如果我在select语句中输入DeptID=01,我会得到数据,但如果我使用for NEXT遍历数组部门,则什么也得不到。您的代码有些奇怪,因为您实际上在每次迭代中都会更改数据源。如果我没有弄错的话,在这种情况下,您将永远无法使用此代码获得DeptID 01的结果。不,如果我仅使用1个部门ID查询excel表,此代码将非常有效。我的问题是,我有大约24个部门ID,如果我必须为每个部门运行相同的代码,这将是一场噩梦。所以我考虑了下一个循环,但没有给出任何结果。