其实,先前刚刚开始敲机房的时候,刚用到DataGridView的时候,总显得力不从心,先要一下子就学会,看了很多的资料,可是按照写的时候,自己有不知道从什么地方下手,于是,当自己用查询sql语句,并用DataGridView显示出来,这个功能不能实现,但这里给大家写一下,如果有什么地方不好的会,请大家指出:
第一版:
窗体设计:
需要的控件:
DateTimePicker、DataSet、DataGridView
把握的三步骤:
第一步:使用视图,创建出你要的产寻结果的视图(如果是一个表就可以解决的,就可以只用一个查询就行了)。
第二步:查询视图返回DataTable
第三步:直接让GridView的DataSource等于DataTable中的数据就行了。
具体实现方法:
- Imports System.Data.sqlClient
- Imports System.Windows.Forms
- Public Class FrmOperGetCharge
- Private Sub btnqurry_Click(ByVal sender As Object,e As EventArgs) Handles btnqurry.Click
- Dim Start_DateTime As String '定义为string是因为sql表中的该字段是string类型
- Dim End_dateTime As String
- Start_DateTime = Convert.ToString(DateTimePicker1.Value + " 00:00:00") '设置的为字符串类型也可以直接进行比较,加上后面的00:00:00是因为数据库中的数据时有时间的
- End_dateTime = Convert.ToString(DateTimePicker2.Value) '接收来自DateTimePicker的数据
- Dim strConnection As String = "Server=mx; Database=ReconsitutionCharge_sys; User ID=sa; Password=123456"
- Dim sqlConnection1 As New sqlConnection(strConnection)
- Dim dataAdapter As New sqlDataAdapter
- Dim dst As New DataSet '存储在DataSet中
- Dim dt As New DataTable '接收查询结果
- sqlConnection1.Open()
- Dim sql As String = "select * from T_Recharge_DAL Where @Start_dateTime <= DateTime AND DateTime <= @End_dateTime"
- Dim cmd As sqlCommand = New sqlCommand(sql,sqlConnection1)
- cmd.Parameters.Add(New sqlParameter("@Start_dateTime",Start_DateTime)) '赋值,传参
- cmd.Parameters.Add(New sqlParameter("@End_dateTime",End_dateTime)) '赋值,传参
- dataAdapter.SelectCommand = cmd
- dataAdapter.Fill(dst,"Recharge") '将DataAdapter中的数据传到DataSet中
- dt = dst.Tables("Recharge") '把DataSet中的数据返回给DataTable
- sqlConnection1.Close()
- DataGridView1.AutoGenerateColumns = True '自动创建列
- DataGridView1.DataSource = dt '数据源
- End Sub
- End Class
其实这个应该也可以用三层来实现。