2016-03-20 14 views
0

Access'ten TIMEIN ve TIMEOUT değerlerini almak ve daha sonra kullanmak için değişkenlere kaydetmek istiyorum. Çalıştığım kod parçası çalışmıyor. İşte kod:VB.NET: erişimden değişkenlere değişkenlerin nasıl aktarılacağı

Public timein As DateTime 
Public timeout As DateTime 
Dim selectquery As String 

    selectquery = "SELECT * FROM emp_timing " & "WHERE emp_code = @p1 AND day = @p2" 


    Using con = New OleDbConnection(dbProvider & dbSource) 
     Using cmd = New OleDbCommand(str, con) 

      timein = cmd.Parameters.Item("emp_timein") 
      timeout = cmd.Parameters.Item("emp_timeout") 

      con.Open() 

      'cmd.Parameters.Add("@p1", OleDbType.VarWChar).Value = System.DateTime.Now 
      cmd.Parameters.Add("@p1", OleDbType.VarWChar).Value = TextBox1.Text 
      cmd.Parameters.Add("@p2", OleDbType.Date).Value = New DateTime(Now.Year, Now.Month, Now.Day) 

      Try 

       Dim rowsSelect = cmd.ExecuteScalar() 
       If rowsSelect > 0 Then 
        MsgBox("Data added to variables") 

       End If 
      Catch ex As Exception 
       MsgBox(ex.Message) 

      End Try 
     End Using 
    End Using 
+0

böylece hata nedir bakın ExecuteReader kullanarak olacak? veri tipi dönüşümü ile ilgisi var mı? – Plutonix

+0

çözülecek sorunu biliyorsanız, bu yardımcı olur Bu hata: 'System.Data.OleDb.OleDbParameter' türünün değeri 'Tarih' dönüştürülemez. –

+0

Öncelikle, bu soruyu çalıştırdıktan sonra ** BURAYA ERROR HERE kodunu taşımanız gerekiyor; daha sonra 'ExecuteReader' olarak değiştirin ve ardından geri dönen veri okuyucusundaki değerleri okuyun. – Plutonix

cevap

0

ExecuteReader veya ExecuteScaler ihtiyaçlarınıza bağlı olan ExecuteNonQuery değiştirin. seçme sorgusu karşı veritabanından sonuç kümesini almak için,

MSDN Documentstion

+0

Hata gösteriyor: 'ExecuteQuery', 'System.Data.OleDb.OleDbCommand' üyesi değil. –

+0

Yürütücü veya ölçekleyici yürütme gibi bir şey var mı? – Saleem

+0

Sizi alamadım mı? –