2016-03-20 11 views
0

TIMEINとTIMEOUTの値をAccessから取得し、後で使用するために変数に格納したいと考えています。私が試しているコードは機能していません。コードは次のとおりです。VB.NET:アクセスから変数への値の転送方法

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

を参照してくださいので、エラーは何ですか?それはデータ型変換と何か関係ありますか?解決する問題がわかっている場合に役立ちます – Plutonix

+0

これはエラーです。タイプ 'System.Data.OleDb.OleDbParameter'の値を 'Date'に変換することはできません。 –

+0

最初に、**あなたがクエリを実行した後**にそのERROR HEREコードを移動する必要があります。それを 'ExecuteReader'に変更して、返されたデータリーダーから値を読み込みます。 – Plutonix

答えて

0

必要に応じてExecuteNonQueryをExecuteReaderまたはExecuteScalerに置き換えます。選択クエリに対してデータベースから結果セットを取得するには、ExecuteReaderの

を使用することがありますMSDN Documentstion

+0

エラーを表示します。 'ExecuteQuery'は 'System.Data.OleDb.OleDbCommand'のメンバーではありません。 –

+0

リーダーやスケーラを実行するようなものはありますか? – Saleem

+0

あなたを取得できませんでしたか? –

関連する問題