Database DataGrid将不显示数据集/记录集 我认为我是一个非常有耐心的人,他有很多的决心去做事情,比如说,我正在做的一个项目。然而,我觉得我只是在浪费宝贵的时间,我可以利用这些时间来实际获取一些知识,而不是把头撞在墙上一事无成。所以我要假装我今天花了11个小时试图解决这个问题没有浪费,只要我能解决它。 我是数据库新手,正在开发一个数据库程序。它是用vb6编写的,我正试图用vb.net重写它。我已经完全从所有不需要的花哨插件中剥离了这个程序,现在只有运行它所需的代码。程序检索记录,但不将这些记录填充到数据网格中。是的,我曾尝试在其他帖子和谷歌搜索上寻求帮助,但我无法找到任何适合我的解决方案
表格1 模块1Database DataGrid将不显示数据集/记录集 我认为我是一个非常有耐心的人,他有很多的决心去做事情,比如说,我正在做的一个项目。然而,我觉得我只是在浪费宝贵的时间,我可以利用这些时间来实际获取一些知识,而不是把头撞在墙上一事无成。所以我要假装我今天花了11个小时试图解决这个问题没有浪费,只要我能解决它。 我是数据库新手,正在开发一个数据库程序。它是用vb6编写的,我正试图用vb.net重写它。我已经完全从所有不需要的花哨插件中剥离了这个程序,现在只有运行它所需的代码。程序检索记录,但不将这些记录填充到数据网格中。是的,我曾尝试在其他帖子和谷歌搜索上寻求帮助,但我无法找到任何适合我的解决方案,database,vb.net,datagridview,Database,Vb.net,Datagridview,表格1 模块1 Imports System.Data Imports System.Data.SqlClient Imports ADS_SQL_TEST_VBNET.Form1 Imports ADS_SQL_TEST_VBNET.Class1 Public Module Module1 Public rs As ADODB.Recordset Public db As ADODB.Connection Public dgvDataGrid As DataGridView Public
Imports System.Data
Imports System.Data.SqlClient
Imports ADS_SQL_TEST_VBNET.Form1
Imports ADS_SQL_TEST_VBNET.Class1
Public Module Module1
Public rs As ADODB.Recordset
Public db As ADODB.Connection
Public dgvDataGrid As DataGridView
Public DataGridRef As New DataGridView
Public sWhichDataType, sSource, sTable, sFields, sQuery, sFilter, sOrderBy, sSelectedIndex, sStoreId
Public lblCount As Object
Public Ctrl1, Ctrl2, Freq, Overhead As Decimal
Public l, x As Integer
Public A, I As Long
Public Sub Main()
Form1.optYes01ph_Click()
End Sub
Public Sub BuildTable()
If sTable = "yes01ph" Or sTable = "" Then
sTable = "yes01ph"
sFields = "store_id,control_no,first_name,last_name,company,address,city,State,zip,phone,total,stat_code,Year,make_id,model_id,engine_id,contact,phone1,phone2,phone3,phone4,invoice_no,ready_proc,summary,note"
sOrderBy = "control_no"
Else
sFields = "store_id,ml_id,first_name,last_name,company,address,city,state,zip,phone,last_upd,address2,phone2,ref_count,comments,fobs_key,quest,lockedby,rmte_stat,serv_upd,serv_id,psm_use,psm_points"
sOrderBy = "ml_id"
End If
BuildFilter()
End Sub
Public Sub BuildFilter()
sFilter = " AND control_no > 1 AND control_no < 500000"
BuildQuery()
End Sub
Public Sub BuildQuery()
sQuery = "SELECT " & sFields & " FROM " & sTable & " WHERE Store_ID Like 'XXX' " & sFilter & " Order By " & sOrderBy
sQuery = Replace(sQuery, "'XXX'", "'" & Trim(UCase("250")) & "'")
End Sub
Public Sub SetGridSize(ByVal sMessage As String)
Dim lblTableType As String
lblTableType = " " & sMessage
Form1.dgvDataGrid.Text = "Data populated using: " & UCase(sMessage)
DataGridRef.ColumnCount = 99
DataGridRef.RowCount = 1
DataSetRef.LoadDataBound()
End Sub
End Module
我认为问题出在LoadDataBound()子例程中,但我不能确定,因为我自己无法解决这个问题。非常感谢那些花时间阅读所有这些内容的人,如果它目前很草率,并且加载了未使用的方法或变量,那么很抱歉。。。为了让它工作,我把它彻底毁掉了 我认为问题在于您使用的是ADO而不是ADO.NET 我没有时间编写你的代码,但也许你应该从一些有用的东西开始。这将从数据库中提取一些数据并填充datagridview。当然,您需要更改连接字符串和表/字段名等:
Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
Dim strCnn As String = "Data Source=sqlservername;Timeout=10;Database=databasename;Trusted_Connection=no;User ID=userid;Password=password;"
Using cnn As New SqlConnection(strCnn)
cnn.Open()
Dim strSql As String = "SELECT * FROM Tablename"
Dim dtb As New DataTable
Using dad As New SqlDataAdapter(strSql, cnn)
dad.Fill(dtb)
End Using
'now hide all the columns except the ones we want to show'
dgv.AutoGenerateColumns = False 'dgv is the name of the datagridview'
Dim intColIndex As Integer
intColIndex = dgv.Columns.Add("Field1", "Field 1") 'aliases'
dgv.Columns(intColIndex).DataPropertyName = "F1" 'column name in database'
intColIndex = dgv.Columns.Add("Field3", "Field 3") 'aliases'
dgv.Columns(intColIndex).DataPropertyName = "F3" 'column name in database'
'now bind'
dgv.DataSource = dtb
End Using
End Sub
哦,你需要
Imports System.Data
Imports System.Data.SqlClient
在表单源代码的顶部。我认为您使用的是ADO而不是ADO.NET。尝试绑定数据表而不是记录集
Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
Dim strCnn As String = "Data Source=sqlservername;Timeout=10;Database=databasename;Trusted_Connection=no;User ID=userid;Password=password;"
Using cnn As New SqlConnection(strCnn)
cnn.Open()
Dim strSql As String = "SELECT * FROM Tablename"
Dim dtb As New DataTable
Using dad As New SqlDataAdapter(strSql, cnn)
dad.Fill(dtb)
End Using
'now hide all the columns except the ones we want to show'
dgv.AutoGenerateColumns = False 'dgv is the name of the datagridview'
Dim intColIndex As Integer
intColIndex = dgv.Columns.Add("Field1", "Field 1") 'aliases'
dgv.Columns(intColIndex).DataPropertyName = "F1" 'column name in database'
intColIndex = dgv.Columns.Add("Field3", "Field 3") 'aliases'
dgv.Columns(intColIndex).DataPropertyName = "F3" 'column name in database'
'now bind'
dgv.DataSource = dtb
End Using
End Sub
Imports System.Data
Imports System.Data.SqlClient