前言:dataview表示排序,筛选,搜索,编辑和导航datatable的可绑定数据的自定义视图。
dataview是一张datatable的虚拟视图,用来显示数据,允许绑定到windows和web的控件上。
dataset表示数据库,是多个表datatable的集合,table就是数据库中的表,而dataview则是对应数据库中的的视图view.
1.等待调用的 存储语句:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER proc [dbo].[ddxx]
as
select * from 客户 left JOIN 定单统计 on 客户.id=定单统计.客户id
2. 字段定义:
Public tblinfo As DataTable = New DataTable()
Public dataview1 As DataView = New DataView()
Public dataview2 As DataView = New DataView()
Public dataview3 As DataView = New DataView()
Dim ds As New DataSet
打开数据库函数
Public Sub dakai()
Data()
Dim scd As SqlDataAdapter = New SqlDataAdapter("ddxx", cn) ‘调用存储
scd.SelectCommand.CommandType = CommandType.StoredProcedure
Dim ds As New DataSet()
scd.Fill(ds, "客户")
cbkf.DataSource = ds.Tables("客户")
cbkf.DisplayMember = "客户"
dataview1 = ds.Tables(0).DefaultView
kfmc.AutoGenerateColumns = False
kfmc.DataSource = dataview1
kfmc.RowHeadersVisible = False
kfmc.ReadOnly = True
kfmc.Columns.Item(0).SortMode = DataGridViewColumnSortMode.NotSortable
ds.Dispose()
cn.Close()
kh.Text = ""
kf.Text = ""
hth.Text = ""
bdh.Text = ""
sl.Text = ""
psy.Text = ""
time.Text = Date.Now()
'初始化订单信息,储存在虚拟视图中
Dim strSql As String = "select * from 定单信息"
Dim da As SqlDataAdapter = New SqlDataAdapter()
ds = sqldaad(strSql, "定单信息")
dataview2 = ds.Tables(0).DefaultView
End Sub
Private Sub kfmc_RowEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles kfmc.RowEnter
If e.RowIndex >= 0 And e.RowIndex < kfmc.RowCount - 1 Then
str = kfmc.Item(0, e.RowIndex).Value
dataview2.RowFilter = "客户id=" + str '过滤作用
ddhth.RowHeadersVisible = False
ddhth.AutoGenerateColumns = False
ddhth.DataSource = dataview2
txtkfmz.Text = banjiao(kfmc.Item(1, e.RowIndex).Value)
cbgjdq.Text = banjiao(kfmc.Item(3, e.RowIndex).Value)
End If
End Sub
Private Sub 合同号编辑_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.MdiParent = mainfrm
Button1.Enabled = False
temp = ""
DataGridView3.RowHeadersVisible = False
cbzl.SelectedIndex = 0
dakai() '首先显示客户名称列表
ddhth.ReadOnly = True
End Sub
Sub cxhth(ByVal strcx)
Dim strSql As String = "select * from 定单信息 where 合同号 like '%" + strcx + "%'"
Dim da As SqlDataAdapter = New SqlDataAdapter()
ds = sqldaad(strSql, "定单信息")
dataview3 = ds.Tables(0).DefaultView
ddhth.DataSource = dataview3
ddhth.RowHeadersVisible = False
ddhth.AutoGenerateColumns = False
End Sub