Я делаю проект по вставке данных о слонах из центра сохранения в его базу данных. В нем я предполагаю, что некоторые слоны рождаются в нем, а некоторые одарены. Поэтому я надеюсь сохранить в базе данных два типа дат. Когда слон рождается, у него должен быть только день рождения, тогда как, как если бы слон был подарен, у него должны быть две даты: дата прибытия и день рождения.
Я закодировал вставляющий запрос.
try
{
if (rbm.Checked == true)
{
gen = "Male";
}
else if (rbf.Checked == true)
{
gen = "Female";
}
if (rbgr.Checked == true)
{
med = "gifres";
}
else if (rbb.Checked == true)
{
med = "born";
}
String save_emp_query = "INSERT INTO ElephantData VALUES('" + txtidentyno.Text + "','" + txtelname.Text + "','" + cmbspecies.Text + "','" + gen + "','" + med + "','" + dtpdob.Text + "','" + dtpdoa.Text + "','" + cmbcon.Text + "')";
cmd = new SqlCommand(save_emp_query, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Elephant " + txtelname.Text + " (" + txtidentyno.Text + ") successfully saved to the database!", "Saved!", MessageBoxButtons.OK, MessageBoxIcon.Information);
clear();
}
catch (Exception ex)
{
MessageBox.Show("Error while Saving....." + Environment.NewLine + ex);
}
Здесь у меня проблема при сохранении дат. Если я хочу спасти слона, рожденного в центре, у него не должно быть даты прибытия. Поэтому я игнорирую средство выбора даты прибытия и сохраняю данные в базе данных. Когда я просматриваю данные в своей базе данных, для даты прибытия сохраняется значение по умолчанию.
Мне нужно оставить столбец даты прибытия пустым, вставив в него нулевое значение. Как это сделать?
Как мне это сделать, вы можете дать мне образец кода?
В Интернете есть множество примеров (на этом сайте и в более широкой сети), пожалуйста, поищите и попробуйте сами.


может тебе нужно такое состояние
if (dtpdoa.Text == ''){
String save_emp_query = "INSERT INTO ElephantData VALUES('" + txtidentyno.Text + "','" + txtelname.Text + "','" + cmbspecies.Text + "','" + gen + "','" + med + "','" + dtpdob.Text + "',null,'" + cmbcon.Text + "')";
}else{
String save_emp_query = "INSERT INTO ElephantData VALUES('" + txtidentyno.Text + "','" + txtelname.Text + "','" + cmbspecies.Text + "','" + gen + "','" + med + "','" + dtpdob.Text + "','" + dtpdoa.Text + "','" + cmbcon.Text + "')";
}
Во-первых, создание запросов из .NET - не лучшая практика. Вместо,
string save_emp_query = "INSERT INTO ElephantData VALUES('" + txtidentyno.Text + "','" + txtelname.Text + "','" + cmbspecies.Text + "','" + gen + "','" + med + "','" + dtpdob.Text + "',null,'" + cmbcon.Text + "')"
Если вы можете следовать подходам 1 и 2, вы можете обратиться к приведенному ниже коду:
// 1. declare command object with parameter
SqlCommand cmd = new SqlCommand(
"INSERT INTO ElephantData VALUES(@IdNo, @Species ....., conn);
// 2. define parameters used in command object
SqlParameter param = new SqlParameter();
param.ParameterName = "@IdNo";
param.Value = txtidentyno.Text;
SqlParameter param2 = new SqlParameter();
param2.ParameterName = "@Species";
param2.Value = cmbspecies.Text;
// 3. add new parameter to command object
cmd.Parameters.Add(param);
// 4. Finally Execute Query
cmd.ExecuteNonQuery();
Я сделал это первым методом, который вы мне предложили, и он отлично сработал. Спасибо!
Хорошо @ akila-ranasingha, вы выбрали лучший подход. Не могли бы вы проголосовать за и отметить это как ответ, чтобы это помогло сообществу лучше находить решения.
Не объединяйте свои значения, используйте параметры.