У меня есть база данных в MySQL Workbench с такими полями, как (имя, фамилия, возраст, адрес и т. Д.) И приложение рабочего стола Windows (форма) в visual studio с C#, где вы можете вставить, поиск и обновление. Когда я вставляю данные из формы и оставляю поля пустыми, они сохраняются в базе данных как пустые, и я хочу, чтобы они были сохранены как null. Есть ли способ сделать это?Вставить нулевое значение в базу данных
Вот и кнопка вставки кода:
conn = openconnection.GetConn();
MySqlCommand cmd = new MySqlCommand("INSERT INTO table_name (name,lastname,address, etc...) VALUES (' " + name_textbox.Text + " ',' " + lastname_textbox.Text + " ' etc...);", conn);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
conn.Close();
Большое спасибо, это работает отлично, но у меня есть проблема со словами с пробелами, например: (имя отца, имя матери и т.д.). Когда я вставляю значение по имени, это нормально, но когда я вставляю значение в имя отца или имя матери, оно равно null. Я думаю, это из-за пространства между словами.
MySqlCommand cmd = new MySqlCommand("INSERT INTO table_name (name,`father name`,`mother name`, etc... VALUES (@name,@`father name`,@`mother name`,etc...);", conn);
cmd.Parameters.AddWithValue("@name", name_textbox.Text.NullString());
cmd.Parameters.AddWithValue("@`father name`", father_name_textbox.Text.NullString());
cmd.Parameters.AddWithValue("@`mother name`", mother_name_textbox.Text.NullString());
cmd.ExecuteNonQuery();
Прежде чем что-либо делать, вы должны прочитать [SQL Injection] (http://en.wikipedia.org/wiki/SQL_injection). – canon