wysłanie Null do bazy sqLite

0

Witam, mam problem z wysłaniem NULL do bazy sqLite :/
Z góry wielkie dzięki za pomoc.

0

jakieś szczegóły? podaj przynajmniej jak to robisz w tej chwili.

7

Ktoś jeszcze ma z tym problem?
Wpisujcie miasta!

0

o to kod :

 sqlite_conn = new SQLiteConnection(@"Data Source=C:\Documents and Settings\Dell\Moje dokumenty\Visual Studio 2010\Projects\SqLite\SqLite\DataBase\DataBase.s3db;Version=3;");
            sqlite_conn.Open();
            sqlite_cmd = sqlite_conn.CreateCommand();
            sqlite_cmd.CommandText = "INSERT INTO data (fname,lname,size,age) VALUES ('"+TFName.Text+"','"+TLName.Text+"',"+TSize.Text+","+TAge.Text+");";
            sqlite_cmd.ExecuteNonQuery();
            sqlite_cmd.CommandText = "SELECT * FROM data ORDER BY id_data DESC LIMIT 1";
            sqlite_datareader = sqlite_cmd.ExecuteReader();
            int FId=0;
            while (sqlite_datareader.Read())
            {                
                FId= Convert.ToInt32(sqlite_datareader["id_data"]);
            }
            sqlite_datareader.Close();
            sqlite_cmd.CommandText = "INSERT INTO address (street,number,city,id_data) VALUES ('"+ TStreet.Text +"'," +TNumber.Text + ",'" + TCity.Text +"',"+FId+ ");";
            sqlite_cmd.ExecuteNonQuery();
            sqlite_conn.Close(); 

i zawsze gdy zostawiam TextBoxa pustego, wyskakuje mi błąd SQLite error near ",": syntax error
błąd ten występuje tylko wtedy gdy textBox jest pusty, który wysyła informacje do bazy gdzie jest pole typu INTEGER, ale przy wysyłaniu pustego textBoxa do pola TEXT w bazie nie występuje błąd.

0

No to sprawdzaj czy Textbox jest pusty i jezeli jest to wstawiaj tam NULL.

0

własnie robiłem tak i tez nie działa
TSize.Text = TSize.Text != "" ? TSize.Text : null;

0

znalazłem już błąd, więc dzięki za pomoc!
a błąd był w zapytaniu SQL sqlite_cmd.CommandText = "INSERT INTO address (street,number,city,id_data) VALUES ('"+ TStreet.Text +"'," +TNumber.Text + ",'" + TCity.Text +"',"+FId+ ");";
gdzie typy INTEGER nie były w apostrofach i kiedy własnie był tam null to program nic tam nie widział i dla niego były tam tylko dwa przecinki, dlatego wyrzucał błąd SQLite error near ",": syntax error

1

Dobrze a teraz spójrz na swój pierwszy post w tym temacie i zastanów się czy dobrze opisuje on Twój problem, a następnie wymów na głos mocne postanowienie poprawy, że postarasz się bardziej przy zakładaniu nowego tematu na forum.

1
juli126 napisał(a)

znalazłem już błąd, więc dzięki za pomoc!
a błąd był w zapytaniu SQL sqlite_cmd.CommandText = "INSERT INTO address (street,number,city,id_data) VALUES ('"+ TStreet.Text +"'," +TNumber.Text + ",'" + TCity.Text +"',"+FId+ ");";
gdzie typy INTEGER nie były w apostrofach i kiedy własnie był tam null to program nic tam nie widział i dla niego były tam tylko dwa przecinki, dlatego wyrzucał błąd SQLite error near ",": syntax error

  • liczb nie trzeba podawać w apostrofach
  • null to co innego niż pusta wartość
  • nie możesz podawać null w apostrofach, null to nic, a 'null' to string zawierający napis
  • wyobraź sobie konsekwencje tego, że ktoś w wyniku literówki wpisał taki tekst do TStreet.Text: ', , , 0); truncate address; --
  • co to za konwencja nazewnicza, która wymaga dodania literki T do nazwy zmiennej?
0
ŁF napisał(a)
  • co to za konwencja nazewnicza, która wymaga dodania literki T do nazwy zmiennej?

Mi to wygląda na jakieś Delphi, chyba tam wszystko jest na T.

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