OleDbCommand - pobieranie rekordu

0

Cześć,

Mam następujący problem i pustkę w głowie co do rozwiązania.

 
private void button_load_Click(object sender, EventArgs e)
        {
            String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
                            textBox_path.Text +
                            ";Extended Properties='Excel 12.0 XML;HDR=YES;';";

            OleDbConnection con = new OleDbConnection(constr);
            OleDbCommand oconn = new OleDbCommand("SELECT *  FROM [Arkusz1$] WHERE Cena=83,13", con);
            con.Open();

            OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
            DataTable data = new DataTable();
            sda.Fill(data);
            MainGridView.DataSource = data;

     
        }

Powyższy kod nie działa i nie pobiera mi wartości, którą chce pobrać z pliku Excela wyrzucając mi błąd : An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll Additional information: Data type mismatch in criteria expression."

Dziwi mnie to dlatego, że działa mi gdy np. zadam takie zapytanie :

 
OleDbCommand oconn = new OleDbCommand("SELECT * FROM [Arkusz1$] WHERE Jm = 'kg'", con);

W czym może tkwić problem ?

1

Może wartość ceny też trzeba podać w apostrofach? Albo użyć uniwersalnego, a nie polskiego separatora dziesiętnego (czyli kropki).

0

Błąd na poziomie podstawówki. Istotnie należy użyć kropki....ale bez apostrofów.

 
OleDbCommand oconn = new OleDbCommand("SELECT * FROM [Arkusz1$] WHERE Cena = 0.00", con);
0

przecinek oddziela np. kolejne pola i tutaj wygląda to tak SELECT * FROM [Arkusz1$] WHERE Cena=83, 13, gdzie zarówno , jak i 13 są całkowicie nie na miejscu. Nigdzie w SQLu nie ma przecinka jako separatora dziesiętnego

1 użytkowników online, w tym zalogowanych: 0, gości: 1