1

这段代码有什么问题?没有错误,但没有结果。我的 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
4

1 回答 1

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 
.....
于 2012-10-17T12:19:29.890 回答