2012-10-17 153 views
1

这段代码有什么问题? 没有错误,但没有结果。我的DataGridView_sent没有被填充。oracle vb.net数据集填充

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 
+0

校验值(行)渲染,数据是否有数据库或没有?并且还需要检查该过滤器的查询,即“发送日期之间'”&date1&“'和'”&date2&“'”“ – andy

回答

1

这可能是由错误的日期表示引起的。
您应该使用参数化查询,并让Oracle提供在“DS”的正确模式的日期字段值

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

问题不在这里,仍然是相同的结果。与此MsgBox(ds.Tables.Count )我得到'1',即使有更多的行。 – babboon

+1

你的意思是ds.Tables(0).Rows.Count,对吧? – Steve

+0

哦,这给了我写的数字,这意味着数据集被填充了,所以这行DataGridView_sent.DataSource = ds不工作然后。我怎么datagridview与数据集?谢谢 – babboon