Håndtering av Accessdatabase i C#

Her postes alt som har med overnevnte teknologier.

Håndtering av Accessdatabase i C#

Innlegg dreamastr » 14.11.2010 18:37

Hei!

Har slitt litt med en SQL-spørring mot Access-database de siste dagene, så jeg trenger sårt litt hjelp for å komme meg videre..

I access-databasen min har jeg et datoformat dd.MM.yyyy HH:mm og jeg skulle gjerne ha hatt en spørring som dette;
string query = "SELECT * FROM database WHERE DATO BETWEEN " + dateTimePicker1.ToString() + " AND " dateTimePicker2.ToString() + ";"


Resultatet skal lagres i et dataset og videre til gridView.
Feilen oppstår da dataene skal inn i dataset, uten noe særlig hjelp å få av meldingen.

Noen som vet hva det kan være, og om det i det hele tatt fungerer med BETWEEN i OleDb-spørringer?
dreamastr
Medlem
 
Innlegg: 157
Registrert: 04.03.2007 13:41
Bosted: Stange

Re: Håndtering av Accessdatabase i C#

Innlegg Jannis » 14.11.2010 22:24

Hva sier feilmeldingen?

Prøv å kutt ut BETWEEN og skriv den slik:
Kode: Merk alt
WHERE DATO > " + dateTimePicker1.ToString() + " AND DATO < " dateTimePicker2.ToString()


Jeg tviler på at det er det som er årsaken, men uten feilmelding kan jeg ikke vite mer.
Lykketallet mitt er 127001.
Brukerens avatar
Jannis
Medlem
 
Innlegg: 195
Registrert: 27.10.2008 9:38

Re: Håndtering av Accessdatabase i C#

Innlegg dreamastr » 15.11.2010 8:01

Her er hele koden:
Kode: Merk alt
        private void button1_Click(object sender, EventArgs e)
        {

            string query = "SELECT * FROM LEVERTVARE WHERE Tidspkt > " + dateTimePicker1.ToString() + " AND ´Tidspkt´ < " + dateTimePicker2.ToString() + " ";
            OleDbConnection Con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\Access\LEVERTVARE.mdb;Jet OLEDB:Database Password=PW;");

            OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, Con);

            DataSet dSet = new DataSet();
            dAdapter.Fill(dSet);

            DataGridView grid = new DataGridView();
            BindingSource bSource = new BindingSource();

            bSource.DataSource = dSet;

            exportToExcel(dSet, @"C:\LEVERTVARE.xls");

        }


Feilmelding:
Syntax error (comma) in query expression 'Tidspkt > System.Windows.Forms.DateTimePicker, Value: 15.11.2007 08:12:48 AND ´Tidspkt´ < System.Windows.Forms.DateTimePicker, Value: 15.11.2010 08:12:48'.
dreamastr
Medlem
 
Innlegg: 157
Registrert: 04.03.2007 13:41
Bosted: Stange

Re: Håndtering av Accessdatabase i C#

Innlegg Jannis » 15.11.2010 9:33

Da må du lese feilmeldingen din igjen, den forklarer egentlig alt.

dateTimePicker1.ToString() returnerer "System.Windows.Forms.DateTimePicker, Value: 15.11.2007 08:12:48"

string query inneholder "Tidspkt > System.Windows.Forms.DateTimePicker, Value: 15.11.2007 08:12:48 AND ´Tidspkt´ < System.Windows.Forms.DateTimePicker, Value: 15.11.2010 08:12:48"

Du må bruke dateTimePicker1.Value.ToString()
Lykketallet mitt er 127001.
Brukerens avatar
Jannis
Medlem
 
Innlegg: 195
Registrert: 27.10.2008 9:38

Re: Håndtering av Accessdatabase i C#

Innlegg dreamastr » 15.11.2010 9:42

Takker for kjapt svar :)

Ny feilmedling:
Syntax error (missing operator) in query expression 'Tidspkt > 15.11.2008 09:58:45 AND ´Tidspkt´ < 15.11.2010 09:58:45'.


Dette kommer forresten da jeg oppdaterer dataset med adapter.fill
dreamastr
Medlem
 
Innlegg: 157
Registrert: 04.03.2007 13:41
Bosted: Stange

Re: Håndtering av Accessdatabase i C#

Innlegg dreamastr » 04.12.2010 11:11

Funnet løsningen:

Det må benyttes ## rund dato når man bruker Access.. Datoformatet må også være yyyy-MM-dd HH:mm:ss
dreamastr
Medlem
 
Innlegg: 157
Registrert: 04.03.2007 13:41
Bosted: Stange


Gå til ASP / ASP.NET, C#, VB.NET, Silverlight, Azure

Hvem er i forumet

Brukere som leser i dette forumet: Ingen registrerte brukere og 2 gjester