oracle vb.net 数据集填充
Posted
技术标签:
【中文标题】oracle vb.net 数据集填充【英文标题】:oracle vb.net dataset fill 【发布时间】:2012-10-17 11:17:02 【问题描述】:这段代码有什么问题? 没有错误,但没有结果。我的 DataGridView_sent 没有被填满。
Dim objConn As New System.Data.OracleClient.OracleConnection
Dim objCmd As New System.Data.OracleClient.OracleCommand
Dim dtAdapter As New System.Data.OracleClient.OracleDataAdapter
Dim ds As New DataSet
Dim strConnString, strSQL As String
strConnString = "Data Source=db;User Id=user;Password=pass;"
strSQL = "select * from table where sentdate between '" & date1 & "' and '" & date2 & "'"
objConn.ConnectionString = strConnString
With objCmd
.Connection = objConn
.CommandText = strSQL
.CommandType = CommandType.Text
End With
dtAdapter.SelectCommand = objCmd
dtAdapter.Fill(ds)
DataGridView_sent.DataSource = ds
dtAdapter = Nothing
objConn.Close()
objConn = Nothing
【问题讨论】:
检查“ds”中的值(行),数据库中是否有数据?并且还需要检查该过滤器的查询,即“发送日期在'”& date1&“'和'”& date2&“'”” 【参考方案1】:这可能是由于日期表示不正确造成的。 您应该使用参数化查询并让 Oracle Provider 以正确的模式呈现您的日期字段值
....
strSQL = "select * from table where sentdate between :date1 and :date2"
objConn.ConnectionString = strConnString
With objCmd
.Connection = objConn
.CommandText = strSQL
.CommandType = CommandType.Text
.Parameters.AddWithValue(":date1", Convert.ToDateTime(date1));
.Parameters.AddWithValue(":date2", Convert.ToDateTime(date2));
End With
dtAdapter.SelectCommand = objCmd
.....
【讨论】:
问题不在这里。还是一样的结果。有了这个 MsgBox(ds.Tables.Count) 我得到 '1' 即使有更多的行。 哦,这给了我写的数字,这意味着数据集已填充。所以这条线 DataGridView_sent.DataSource = ds 不工作。我如何将 datagridview 与数据集?谢谢 dtAdapter.Fill(ds, "Sent") DataGridView_sent.DataSource = ds.Tables("Sent") 所以它起作用了。谢谢:)以上是关于oracle vb.net 数据集填充的主要内容,如果未能解决你的问题,请参考以下文章