diff --git a/COM350/Project3/VBWinFormDataGridView/DataGridViewPaging/MainForm.vb b/COM350/Project3/VBWinFormDataGridView/DataGridViewPaging/MainForm.vb
index e62ab0c..e6b1e1b 100644
--- a/COM350/Project3/VBWinFormDataGridView/DataGridViewPaging/MainForm.vb
+++ b/COM350/Project3/VBWinFormDataGridView/DataGridViewPaging/MainForm.vb
@@ -16,11 +16,14 @@
Imports System.Data.SqlClient
Imports System.Configuration
+Imports System.Collections.Generic
Namespace VBWinFormDataGridView.DataGridViewPaging
Public Class MainForm
+ Implements IOrderInformationRetriever
+
Private PageSize As Integer = 30
Private CurrentPageIndex As Integer = 1
Private TotalPage As Integer
@@ -28,6 +31,7 @@ Namespace VBWinFormDataGridView.DataGridViewPaging
Private conn As SqlConnection
Private adapter As SqlDataAdapter
Private command As SqlCommand
+ Private dtable As DataTable
Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.conn = New SqlConnection(connstr)
@@ -95,6 +99,7 @@ Namespace VBWinFormDataGridView.DataGridViewPaging
Dim view As New DataView(dt)
view.Sort = "CustomerID"
Dim dtout As DataTable = view.ToTable()
+ Me.dtable = dtout
Return dtout
End Function
@@ -131,6 +136,45 @@ Namespace VBWinFormDataGridView.DataGridViewPaging
Me.GetTotalPageCount()
Me.dataGridView1.DataSource = GetPageData(Me.CurrentPageIndex)
End Sub
+
+ Public Function GetOrderInformationAmountTotal() As List(Of OrderInformation) Implements IOrderInformationRetriever.GetOrderInformationAmountTotal
+ Dim dt As DataTable = New DataTable()
+ command.Parameters.Clear()
+ command.CommandType = CommandType.Text
+ command.CommandText = _
+ "SELECT Orders.OrderID, Customers.CompanyName, SUM([Order Details].UnitPrice * [Order Details].Quantity) as Aprice" _
+ & "FROM [Orders]" _
+ & "JOIN [Customers] ON Customers.CustomerID = Orders.CustomerID" _
+ & "JOIN [Order Details] ON [Order Details].OrderID = Orders.OrderID" _
+ & "WHERE Orders.CustomerID = (SELECT TOP 1 CustomerID" _
+ & "FROM [Northwind].dbo.Orders" _
+ & "GROUP BY CustomerID" _
+ & "ORDER BY COUNT(*) DESC)" _
+ & "GROUP BY Customers.CompanyName, Orders.OrderID" _
+ & "ORDER BY Orders.OrderID DESC"
+
+ Try
+ conn.Open()
+ Me.adapter.SelectCommand = command
+ Me.adapter.Fill(dt)
+ Catch ex As Exception
+ MessageBox.Show(ex.Message)
+ Finally
+ conn.Close()
+ End Try
+
+ Dim drlist As New List(Of DataRow)
+ For Each row As DataRow In dt.Rows
+ drlist.Add(CType(row, DataRow))
+ Next
+ Return drlist.Select(Function(rowin As DataRow)
+ Return New OrderInformation With {
+ .CompanyName = rowin.Item("CompanyName"),
+ .OrderId = rowin.Item("OrderID"),
+ .OrderUnitPrice = rowin.Item("Aprice")
+ }
+ End Function)
+ End Function
End Class
End Namespace
\ No newline at end of file
diff --git a/COM350/Project3/VBWinFormDataGridView/IOrderInformationRetriever.vb b/COM350/Project3/VBWinFormDataGridView/IOrderInformationRetriever.vb
new file mode 100644
index 0000000..08bf2f6
--- /dev/null
+++ b/COM350/Project3/VBWinFormDataGridView/IOrderInformationRetriever.vb
@@ -0,0 +1,3 @@
+Public Interface IOrderInformationRetriever
+ Function GetOrderInformationAmountTotal() As List(Of OrderInformation)
+End Interface
diff --git a/COM350/Project3/VBWinFormDataGridView/OrderInformation.vb b/COM350/Project3/VBWinFormDataGridView/OrderInformation.vb
new file mode 100644
index 0000000..990b672
--- /dev/null
+++ b/COM350/Project3/VBWinFormDataGridView/OrderInformation.vb
@@ -0,0 +1,6 @@
+Public Class OrderInformation
+
+ Public Property CompanyName As String
+ Public Property OrderId As String
+ Public Property OrderUnitPrice As String
+End Class
diff --git a/COM350/Project3/VBWinFormDataGridView/VBWinFormDataGridView.vbproj b/COM350/Project3/VBWinFormDataGridView/VBWinFormDataGridView.vbproj
index ce23db1..ab3ba49 100644
--- a/COM350/Project3/VBWinFormDataGridView/VBWinFormDataGridView.vbproj
+++ b/COM350/Project3/VBWinFormDataGridView/VBWinFormDataGridView.vbproj
@@ -108,6 +108,7 @@
Form
+
MainForm.vb
@@ -136,6 +137,7 @@
Settings.settings
True
+