oracle vb.net数据集填充

oracle vb.net数据集填充,.net,oracle,datagridview,dataset,.net,Oracle,Datagridview,Dataset,这个代码有什么问题? 没有错误,但没有结果。我发送的DataGridView\u未被填充 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

这个代码有什么问题? 没有错误,但没有结果。我发送的DataGridView\u未被填充

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

这可能是由于日期表示不正确造成的。
您应该使用参数化查询,并让Oracle提供程序以正确的模式呈现日期字段值

....
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 
.....

这可能是由于日期表示不正确造成的。
您应该使用参数化查询,并让Oracle提供程序以正确的模式呈现日期字段值

....
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 
.....

检查“ds”中的值(行),数据库中是否有数据?还需要检查查询的过滤器,即“sentdate介于“&date1&”和“&date2&”之间”,检查“ds”中的值(行),数据库中是否有数据?还需要检查查询的过滤器,即“sentdate介于“&date1&”和“&date2&”之间,这里没有问题。还是一样的结果。有了这个MsgBox(ds.Tables.Count),即使有更多的行,我也会得到“1”。哦,这给了我写数,这意味着数据集已填充。因此,这一行DataGridView\u sent.DataSource=ds此时不起作用。如何使用dataset创建datagridview?ThanksDataTapter.Fill(ds,“Sent”)DataGridView_Sent.DataSource=ds.Tables(“Sent”),因此它可以正常工作。谢谢:)问题不在这里。还是一样的结果。有了这个MsgBox(ds.Tables.Count),即使有更多的行,我也会得到“1”。哦,这给了我写数,这意味着数据集已填充。因此,这一行DataGridView\u sent.DataSource=ds此时不起作用。如何使用dataset创建datagridview?ThanksDataTapter.Fill(ds,“Sent”)DataGridView_Sent.DataSource=ds.Tables(“Sent”),因此它可以正常工作。谢谢:)