If you look at the
OleDbDataAdaptor.Fill[
^] method, for a DataSet and a string, you will see this:
DbDataAdapter.Fill Method (DataSet, String)[
^] which says that the string parameter is table name to use for data source mapping. Since your query only returns rows based on the "employeetable" and you are using the "product" table for your source, I would expect no rows!
Just remove the string parameter from the Fill method call, and it will probably work.
[edit]
Mind you, I can't help thinking there is something a bit odd about this bit as well:
DataGrid1.DataSource = ds.Tables.Add().DefaultView;
Have you considered filling just a single datatable instead of a dataset, and using that directly?
DataTable dt = new DataTable();
ole.Open();
OleDbDataAdapter ad = new OleDbDataAdapter(query,ole);
ad.Fill(dt);
DataGrid1.DataSource = dt;
[/edit]