Dodawanie daty do bazy danych access przy użyciu klasy OleDb z obiektu DateTimerPicker

0

Mam taką metodę:

public static void DodajKsiazke(int ID_wyd, string syg, string tytul, int rok, string data, int cze)
{
    OleDbConnection polaczenie = new OleDbConnection(DajSciezkeDoPolaczenia());
    polaczenie.Open();
    string zapytanie = "INSERT INTO Ksiazki (ID_wydawnictwa,sygnatura,tytul,rok_wydania,data_wpisu,czesc) values (@ID_wydawnictwa,@sygnatura,@tytul,@rok_wydania,@data_wpisu,@czesc)";
    using (OleDbCommand komenda = new OleDbCommand(zapytanie, polaczenie))
    {
        komenda.Parameters.AddWithValue("@ID_wydawnictwa",ID_wyd);
        komenda.Parameters.AddWithValue("@sygnatura",syg);
        komenda.Parameters.AddWithValue("@tytul",tytul);
        komenda.Parameters.AddWithValue("@rok_wydania",rok);
        komenda.Parameters.AddWithValue("@data_wpisu","#"+data+"#");
        komenda.Parameters.AddWithValue("@czesc",cze);
    }
    // tu jeszcze autorzy przypisac do ksiazki
        polaczenie.Close();
}

Nie dodaje mi kolejnego rekordu do bazy.
komenda.ExecuteNonQuery() zwraca 1

Podejrzewam, że mam błąd w wierszu:

komenda.Parameters.AddWithValue("@data_wpisu","#"+data+"#");

Niestety nie mogę znaleźć jak tę datę dodać...
string data zawiera wartość .Text z obiektu DateTimerPicker

0

Tak jak Tobie pisałem w innym wątku metoda ExecuteNonQuery() zwraca ilość wierszy, która uległa modyfikacji, wstawienia. Zgodnie nawet z oficjalną dokumentacją:

Dla instrukcji UPDATE, INSERT i DELETE wartość zwracana jest liczba wierszy, których to dotyczy, za pomocą polecenia. Dla wszystkich innych typów instrukcje wartość zwracana jest wartość -1. W przypadku wycofywania, wartość zwracana jest również wartość -1.
0

Ok. Usunę moje sprawdzanie i użyję po prostu try.
A struktura mojej tabeli to:
screenshot-20180717203322.png

1 użytkowników online, w tym zalogowanych: 0, gości: 1