Mam baze danych zapisaną .mdb na dysku. Tworze program poprzez stworzenie datagridview i wszystko sie wyswietla:) Tylko nie wiem jak napisac zapisywanie, tz jaki kod powinien miec botton "zapisz" zeby po dodaniu pozycji w rogramie po zamknieciu była zapisana?? Jak najłatwiej napisac funkcje szukająca jakiegos słowa we wszystkich polach bazy danych??
Z góry bardzo dziękuje za pomoc
pzdr
Mam baze danych zapisaną .mdb na dysku. Tworze program poprzez stworzenie datagridview i wszystko sie wyswietla:) Tylko nie wiem jak napisac zapisywanie, tz jaki kod powinien miec botton "zapisz" zeby po dodaniu pozycji w rogramie po zamknieciu była zapisana?? Jak najłatwiej napisac funkcje szukająca jakiegos słowa we wszystkich polach bazy danych??
Z góry bardzo dziękuje za pomoc
pzdr
Ad 1: Jeśli używasz DatagridView (zapewne zbindowane z DataSet), możesz użyć DataSet.Update(). Wcześniej jednak trzeba użyć "UpdateQuery buildera". Wszystko znajdziesz na google.
Ad 2: Chodzi ci o .NET czy po stronie bazy danych.
a) (.NET): Tak jak zwyczajnie byś to zrobił, np. wykorzystując
Array.Exist<T>(array[], predicate<T>)
.. lub tradycyjnie pętla po DataSet.Tables.Rows... : na to samo wychodzi tylko inaczej zapisane.
b) DB: można użyć where param like '%fraza%' .. ale jest to wolne. W MSSQL jest lepsza funkcja CONTAINSTABLE. (F1)
Podobne wątki były już poruszane:
http://4programmers.net/Forum/442065?h=#id442065
http://4programmers.net/Forum/418872?h=#id418872
Przykładowy kod szukania za pomocą zapytania SQL:
public DataTable Szukaj(string kategoria, string slowo)
{
if (slowo.Length >= 3)
{
if (BazaDanych.DataSet.Tables["Czytelnicy"] != null)
BazaDanych.DataSet.Tables["Czytelnicy"].Clear();
string zapytanie = "SELECT * " +
"FROM Czytelnik " +
"WHERE " + kategoria + " LIKE '%" + slowo + "%'";
da = new OleDbDataAdapter(zapytanie, BazaDanych.GetPolaczenie());
da.Fill(BazaDanych.DataSet, "Czytelnicy");
return BazaDanych.DataSet.Tables["Czytelnicy"];
}
else
{
throw new Exception("Szukane słowo ma mniej niż 3 znaki.");
}
}
Zeby Ci nie zamieszać - obiekt DataSet jest publiczny i statyczny Klasy BazaDanych (BazaDanych.DataSet).