2015-07-21 54 views
0

我想从当前月份的Access数据库中导入记录,并且需要将记录显示在我的datagridview上,表单加载不是按钮单击。我的理由是,如果最终用户打开程序,可能需要一些时间才能加载所有记录,所以我只想检索为当前月份输入的记录,显然是在表单加载时输入的记录。我对编码不熟悉,因此我在这里要求这里的人们带着大量的经验。来自Access MS DB的表查询

我的连接代码如下。

Public Sub GetData() 

con.Open() 

Dim dt As New DataTable("tbLMPH") 
Dim rs As New OleDb.OleDbDataAdapter("SELECT * FROM tbLMPH WHERE Year(IDday) = Year(Now()) AND Month(IDday) = Month(Now())", con)                  rs.Fill(dt) 

DataGridView1.DataSource = dt 
DataGridView1.Refresh() 

Label1.Text = dt.Rows.Count 

rs.Dispose() 

con.Close() 

If Val(Label1.Text) = 1 Then 

    Dim i As Integer 
    i = DataGridView1.CurrentRow.Index 

    TextBox2.Text = DataGridView1.Item(1, i).Value 
    TextBox3.Text = DataGridView1.Item(2, i).Value 
    TextBox4.Text = DataGridView1.Item(3, i).Value 
    TextBox5.Text = DataGridView1.Item(4, i).Value 
    TextBox6.Text = DataGridView1.Item(5, i).Value 
    TextBox7.Text = DataGridView1.Item(6, i).Value 

End If 
' Display_Data() 

End Sub 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
Me.TbLMPHTableAdapter.Fill(Me.MaindbDataSet.tbLMPH) 
My.Computer.Audio.Play(My.Resources.jimmy2, AudioPlayMode.Background) 
Display_Data() 
Timer1.Start() 
Label2.ForeColor = Color.White 
Display_Data() 
End Sub 
+0

如果您正在尝试导入记录,检索数据的代码在哪里? 而对于一个建议,使用'参数Queries' – Mahadev

+0

公用Sub的GetData() con.Open() 昏暗DT作为新的DataTable( “tbLMPH”) 昏暗RS作为新OleDb.OleDbDataAdapter(“从tbLMPH其中选择* IDday ='”&TextBox1.Text& “””,CON) rs.Fill(DT) DataGridView1.DataSource = DT DataGridView1.Refresh() Label1.Text = dt.Rows.Count rs.Dispose() con.Close() – Jason

+0

如果val(Label1.Text)= 1然后 昏暗我作为整数 I = DataGridView1.CurrentRow.Index TextBox2.Text = DataGridView1.Item(1,i)的。价值 TextBox3.Text = DataGridView1.Item(2,i)的。价值 TextBox4.Text = DataGridView1.Item(3,i)的。价值 TextBox5.Text = DataGridView1.Item(4,i)的。价值 TextBox6.Text = DataGridView1.Item(5,i).Value TextBox7.Text = DataGridView1.Item(6,i).Value End If 'Display_Data() End Sub – Jason

回答

0

我只是修改代码,使用下面的代码:

Dim dt As New DataTable 
Dim ds as new DataSet 
Dim rs As New OleDb.OleDbDataAdapter("Select * from tbLMPH where IDday='" & TextBox1.Text & "' ", con) 
rs.Fill(dt) 
ds.Fill(rs) 
dt=ds.Tables(0) 

DataGridView1.DataSource = dt 
DataGridView1.Refresh() 

TextBox2.Text=dt.rows(0).Item(1) 
label1.text = dt.Rows.Count() 

使用此代码从数据库中检索数据。如有任何疑问,请随时询问。

+0

TextBox2.Text = dt.rows().Item()是否需要将我的列号和列名插入这些<>确定,现在如果我正在使用此代码,我将如何查询我的数据库以显示当前月份记录 – Jason

+0

只需使用您所需的“行号”和“ColumnNumber”或“ColumnName”而不是“”和“”或“” – Mahadev

+0

您是否要计算行检索? 使用'dt.Rows.Count()'方法来做到这一点 – Mahadev