2014-06-09 3 views
1

을이되어 사용 선택 :VB, 나는 두 날짜 사이에 데이터베이스에서 데이터를 선택하려면 내 코드를 날짜

  Dim data1, data2 As DateTime 
      data1 = DateTime.Parse(txtDate1.Text) 
      data2 = DateTime.Parse(txtDate2.Text) 

는 _____________________ 인수 예외 나던 미리 에서 선택 명령을

감사를 실행 말한다 _____/____________________________________/_______________

덕분에 스티브, 난 당신의 코드를 사용하고 지금은 다른 데이터베이스에 대한 SQL 데이터베이스를 형성 선택할 수 있습니다 지금은

  Dim x As Integer = 0 
      Dim temp1, temp2, temp3, temp4 As String 


      Dim Sql As String = "Select strCodSeccao,strAbrevTpDoc,strCodExercicio,strNumero " & _ 
       "From Mov_Venda_Cab where dtmdata between @d1 and @d2" 


      Dim data1, data2 As DateTime 
      data1 = DateTime.Parse(txtData1.Text) 
      data2 = DateTime.Parse(txtData2.Text) 

      data2 = data2.AddMinutes(0) 
      data2 = data2.AddHours(0) 
      data2 = data2.AddSeconds(0) 

      data1 = data1.AddMinutes(0) 
      data1 = data1.AddHours(0) 
      data1 = data1.AddSeconds(0) 


      Using con = New SqlConnection("Data Source=" & txtserv.Text & ";" & "Initial Catalog=" & txtBD.Text & ";" & "User ID=" & txtuser.Text & ";" & "Password=" & txtPass.Text & "") 
       Using cmd = New SqlCommand(Sql, con) 
        con.Open() 
        cmd.Parameters.AddWithValue("@d1", data1) 
        cmd.Parameters.AddWithValue("@d2", data2) 
        Using reader = cmd.ExecuteReader() 
         While reader.Read() 
          Dim strCodSeccao = reader("strCodSeccao").ToString() 
          temp1 = reader.Item(x) 
          temp2 = reader.Item(x + 1) 
          temp3 = reader.Item(x + 2) 
          temp4 = reader.Item(x + 3) 


          Dim Con2 As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Utilizador.Utilizador-PC\Documents\Visual Studio 2013\Projects\WindowsApplication1\WindowsApplication1\Doc_Vendas_Cab.mdb;Persist Security Info=True") 
          Con2.Open() 
          Dim Ole2 As String = "Insert into Mov_Venda_Cab values('" & temp1 & "','" & temp2 & "','" & temp3 & "','" & temp4 & "');" 
          Dim OledbCom2 As New OleDb.OleDbCommand(Ole2, Con2) 

          Try 
           OledbCom2.ExecuteNonQuery() 
          Catch Ex As Exception 
           MsgBox(Ex) 
          End Try 
          Con2.Close() 
         End While 
        End Using 
       End Using 
      End Using 
+0

";" 귀하의 SQL 명령. ";" SQL IDE에 대해서만 별도의 구문으로 intepreted입니다. – Sky

+0

도움이되기를 기원하지만 [답변 수락 방법] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)을 읽어보십시오. – Steve

답변

2

당신은 매개 변수를 사용해야합니다 작동 질의하고 날짜 시간 값을 전달하십시오.

Dim Sql As String = "Select strCodSeccao,strAbrevTpDoc,strCodExercicio,strNumero " & _ 
        "From Mov_Venda_Cab where dtmdate between @d1 and @d2" 


Dim data1, data2 As DateTime 
data1 = DateTime.Parse(txtDate1.Text) 
data2 = DateTime.Parse(txtDate2.Text) 
data2 = data2.AddMinutes(1439) 

Using con = new SqlConnection("connection string here") 
Using cmd = new SqlCommand(Sql, con) 
    con.Open() 
    cmd.Parameters.AddWithValue("@d1", data1) 
    cmd.Parameters.AddWithValue("@d2", data2) 
    Using reader = cmd.ExecuteReader() 
     While reader.Read() Then 
      Dim strCodSeccao = reader("strCodSeccao").ToString() 
      ..... 
     End While 
    End Using 
End Using 
End Using 

두 번째 날짜에 1439 분을 추가해야합니다. f 날짜 시간 필드에 시간/분/초가 설정된 값이 포함될 경우 마지막 날.