Új hozzászólás Aktív témák

  • Des1gnR

    őstag

    Sziasztok!

    Elakadtam egy számomra érthetetlen dologgal kapcsolatban.
    Feltöltök egy DataGridet egy DataTable adataival - Ez stimmel, bent vannak az oszlopnevek és az adatok.
    Van egy másik DataGridem ahová az előbbi DataTable szűrt adatai kerülnek.

    Az alapján állítom be a szűrőt, hogy az első DataGriden épp mi van kijelölve.

    private void resfilter(String selectedColumnHeader, String cellValue)
    {
    string filter = string.Format(selectedColumnHeader) + "='" + string.Format(cellValue) + "'";
    //eredmény: "Paletta Id='12'"
    string filter2 = "[" + string.Format(selectedColumnHeader) + "] ='" + string.Format(cellValue) + "'";
    //eredmény: "[Paletta Id] ='12'"

    DataTable _newDataTable = dt2.Select(filter).CopyToDataTable();

    dgres.ItemsSource = _newDataTable.AsDataView();
    }

    Ha az első filterrel próbálkozom, akkor System.Data.SyntaxErrorException hibát dob azaz "Szintaktikai hiba: Hiányzik a(z) „Id” operátor utáni operandus."
    Ha a másodikkal, akkor pedig System.Data.EvaluateException hibát, azaz A(z) [Paletta Id] oszlop nem található.

    Az érdekesség annyi, hogy ha az első oszlopra szűrök rá ami egy Sorszám, akkor működik a szűrőm.
    Ehhez kapcsolódóan annyit, hogy a DataTable-be az oszlopok neveit egy tömbből viszem fel, kivéve az első azaz a Sorszám oszlop nevét, amit "kézzel" állítok be.

    private void addFilterTable()
    {
    /* ----- Oszlopok létrehozása ----- */
    dt.Columns.Add("Sorszám", typeof(string));
    for (int i = 0; i < header.Length; i++)
    {
    dt.Columns.Add(header[i], typeof(string));
    }
    .
    .
    .

    Remélem tudtok segíteni :)

Új hozzászólás Aktív témák

Hirdetés