A więc tak.
Pierwsze co próbuje robić to dodać do tableAdaptera query poprzez wizarda w Visual Studio 2012. Wymyśliłem to sobie tak ze dodam query FillByWhere(p_where).
Zapytanie:
SELECT "ID", "FIRMA", "NR_PRAC", "NAZW_IMIE", "ID_OSOBY", "AKTYWNY" FROM "SCHEMAT"."V_PRAC"
WHERE p_where
Gdzie p_where to właśnie parametr w którym chciałbym przekazywać mój dynamicznie stworzony warunek na podstawie wypełnionych pól w formularzu.
Przy zapisie takiego zapytania Visual Studio rzuca się że warunek where jest nieprawidłowy. Olewam ten komunikat idę dalej dodaje parametr do kolekcji parametrów zapytania o nazwie p_where. Następnie próbuje wyświetlić dane poprzez preview data gdzie uzupełniam parametr np.: FIRMA = 'COS' no i to nie działa Oracle zwraca błąd: ORA-00920: invalid relational operator (czyli moje zapytanie nie wygląda tak jakbym tego chciał).
Idąc dalej to widzę że klasa tableAdaptera posiada kolekcję:
private void InitCommandCollection() {
this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1];
this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand();
this._commandCollection[0].Connection = this.Connection;
this._commandCollection[0].CommandText = "SELECT \"ID\", \"FIRMA\", \"NR_PRAC\", \"NAZW_IMIE\", \"ID_OSOBY\", \"AKTYWNY\" +
FROM \"SCHEMAT\".\"V_PRAC\"";
this._commandCollection[0].CommandType = global::System.Data.CommandType.Text;
}
Czy istnieje sposób aby w locie podmieniać wartość CommandText? Wtedy po kliknięciu OK w formularzu zapytania podmieniałbym ten wpis w kolekcji i został by mi zwrócony odpowiedni wynik.
To co chcę uzyskać to możliwość przekazywania warunku na podstawie danych z formularza.