2013-06-06 3 views
0

У меня есть процедура Oracle, которой я должен передать значение datetime из основного выбора даты, которое я назначаю как bdp1. Как передать это значение с VB.net. Когда я прохожу дату ее выполнение делает функциюoracle date insert from vb.net

Public Function GetDate(ByVal strMaterial As String, ByVal ListBox1 As String, ByVal bdp1 As Date) As DataSet 

    Dim connectionString As String = "Data Source = ***; User ID = ***; Password = **;" 
    Dim sqlConnection As OracleClient.OracleConnection = New OracleClient.OracleConnection(connectionString) 


    Dim queryString As String = "select * from abc where tran_dttm <= to_date(':bdp1','MM-DD-YYYY') and tran_dttm > to_date(':bdp1','MM-DD-YYYY')" 


    Dim sqlCommand As OracleClient.OracleCommand = New OracleClient.OracleCommand(queryString, sqlConnection) 
    sqlCommand.CommandTimeout = 0 


    sqlCommand.Parameters.AddWithValue(":strMaterial", txtMaterial.Text) 
    sqlCommand.Parameters.AddWithValue(":ListBox1", ListBox1) 
    sqlCommand.Parameters.AddWithValue(":bdp1", bdp1) 



    Dim dataAdapter As OracleClient.OracleDataAdapter = New OracleClient.OracleDataAdapter(sqlCommand) 
    Dim dataSet As DataSet = New DataSet 
    dataAdapter.Fill(dataSet) 

    Return dataSet 

End Function 

ответ

0

1) Передайте его в качестве даты, а не строка, которую затем преобразовать дату в базе данных. Это безумный разговор.

2) Если вы ДЕЙСТВИТЕЛЬНО хотите это сделать, вы не можете указать свой параметр: to_date(':bdp1','MM-DD-YYYY') он пытается указать литеральную строку ': bdp1'. Измените его на: to_date(:bdp1,'MM-DD-YYYY')

Edit

К сожалению, я неправильно понял ваш код, когда я увидел свой to_date материал, я предположил, что вы проезжали строку. Фактически вы передаете дату, поэтому вам не нужно вообще вызывать to_date. Вы должны иметь возможность просто сделать это:

select * from abc where tran_dttm <= :bdp1 and tran_dttm > :bdp1 

Опять же, обратите внимание, что вы не будете включать свои параметры в одинарные кавычки.

+0

ok имеет пропуск как дату. я должен изменить sqlCommand.Parameters.AddWithValue (": bdp1", bdp1) с sqlCommand.Parameters.AddWithValue to_date (: bdp1, 'MM-DD-YYYY')? – Husna5207

+0

Упс. Неправильный код. См. Мое редактирование – aquinas

+0

, поэтому просто оставайтесь в этом >> sqlCommand.Parameters.AddWithValue (": bdp1", bdp1)? – Husna5207