Daten in DataGridView Speichern


DarKo87

Mitglied
Hallo,

Ich versuche mich gerade mit Windows Search Service, das klappt aber irgendwie nicht so richtig.
Leider werden meine Date nicht im DataGridView ausgegeben und das ganze ding bleibt leer :-/

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Search.Interop;
using System.Data.OleDb;
using System.Security.Permissions;

namespace WPWindowSearch
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnQuit_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void btnSearch_Click(object sender, EventArgs e)
        {
            string userQuery = txtBoxSearch.Text;

            CSearchManager manager = new CSearchManager();

            ISearchCatalogManager catalogManager = manager.GetCatalog("SystemIndex");
            ISearchQueryHelper queryHelper = catalogManager.GetQueryHelper();

            queryHelper.QueryMaxResults = 10;
            queryHelper.QuerySelectColumns = "System.ItemPathDisplay";
            queryHelper.QueryWhereRestrictions = "AND scope='file:'";
            queryHelper.QuerySorting = "System.DateModified DESC";

            string sqlQuery = queryHelper.GenerateSQLFromUserQuery(userQuery);

            using (System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(queryHelper.ConnectionString))
            {
                conn.Open();

                using (OleDbCommand command = new OleDbCommand(sqlQuery, conn))
                {
                    // execute the command, which returns the results as an OleDbDataReader.
                    using (OleDbDataReader WDSResults = command.ExecuteReader())
                    {
                        dataGridView1.DataSource = WDSResults;
                    }
                }

            }
        }
    }
}

Kann mir vielleicht jemand helfen?

Vielen Dank
 

DarKo87

Mitglied
Bitte kann mir niemand helfen? :-( Versteh nichtm wieso mein DataGridView leer bleibt. In einer Listbox, wird selbiges immer schön ausgeben.

Gruß
 

Spyke

Premium-User
setzt du in der ListBox auch die DataSource mit dem reader?
der wird ja eigentlich wieder freigegeben.

ich glaube bei einem DbDataReader kann man die ergebnisse auch als DataSet zurückgeben lassen, ich mag zwar keine DataSet aber test weise könntest du das hja mal als DataSource setzen.

Ansonsten würde ich persönlich empfehlen die ausgabe in ein ordentliches Objekt modell zu packen und das als datasource anzugeben.

Und AutoGeneratorColumns ist auf true oder?
 

DarKo87

Mitglied
Hallo Spyke,

Vielen Dank für deine Antwort. AutoGeneratorColumns ist auf True gesetzt.

Die listbox beschreibe ich mit folgendem Code
Code:
                    using (OleDbDataReader WDSResults = command.ExecuteReader())
                    {
                        while (WDSResults.Read())
                        {
                            ListBox1.Items.Add(WDSResults.GetString(0));
                        }
                    }

Vielleicht gibt es ja eine sinnvoller möglichkeit das DataGridView zu beschreiben, tue mich da sehr schwer :-(
 

Spyke

Premium-User
Du könntest das ganze über den OleDbDataAdapter laufen lassen, da gebts ne Fill Methode dem du ein DataSet angibst.
Dieses DataSet könntest dann als DataSource angeben.
Dann sollte er eigentlich im DataGridView was anzeigen.
 

ksk

Erfahrenes Mitglied
Probier mal nach DataSource Zuweisung die DataBind Methode aufzurufen.
Code:
dataGridView1.DataSource = WDSResults;
dataGridView1.DataBind()

Lg
ksk