отправка нулевых значений из datetimepicker в базу данных - PullRequest
1 голос
/ 26 августа 2011

привет, может кто-нибудь, пожалуйста, помогите мне с этим вопросом? я хочу отправить нулевое значение в базу данных из datetimepicker, но он не работает, он не выдает ошибку, но каждый раз, когда я снимаю галочку рядом с datetimepicker, дата еще вводится :( может кто-нибудь помочь с этим

    private void BtnSave_Click(object sender, EventArgs e)
    {

        using (SqlConnection sqlConn = new SqlConnection("Data Source=TANYA-PC;Initial Catalog=biore1;Integrated Security=True"))
        {
            string sqlQuery = @"INSERT INTO cottonpurchase VALUES(@slipNo, @purchasedate, @farmercode, @farmername, @villagename, @basicprice, @weight, @totalamountbasic, @premium, @totalamountpremium, @totalamountpaid,  @certstatus)";



            using (SqlCommand cmd = new SqlCommand(sqlQuery, sqlConn))
            {
                cmd.Parameters.Add("@slipNo", SqlDbType.Int).Value = (!String.IsNullOrEmpty(TxtSlipNo.Text)) ? int.Parse(TxtSlipNo.Text) : (object)DBNull.Value;
                cmd.Parameters.Add("@purchasedate", SqlDbType.DateTime).Value = Date.Text;
                if (Date.Checked)
                    cmd.Parameters.AddWithValue("purchdate", Date);
                else
                    cmd.Parameters.AddWithValue("purchdate", DBNull.Value);
                 cmd.Parameters.Add("@farmercode", SqlDbType.Int).Value = TxtFarmerCode.Text;

                cmd.Parameters.Add("@farmername", SqlDbType.VarChar, 100).Value = TxtFarmerName.Text;
                cmd.Parameters.Add("@villagename", SqlDbType.VarChar, 100).Value = TxtVillageName.Text;
                cmd.Parameters.Add("@basicprice", SqlDbType.Int).Value = (!String.IsNullOrEmpty(TxtBasicPrice.Text)) ? int.Parse(TxtBasicPrice.Text) : (object)DBNull.Value;
                cmd.Parameters.Add("@weight", SqlDbType.Int).Value = (!String.IsNullOrEmpty(TxtWeight.Text)) ? int.Parse(TxtWeight.Text) : (object)DBNull.Value;
                cmd.Parameters.Add("@totalamountbasic", SqlDbType.Int).Value = (!String.IsNullOrEmpty(TxtTotalAmountBasic.Text)) ? int.Parse(TxtTotalAmountBasic.Text) : (object)DBNull.Value;
                cmd.Parameters.Add("@premium", SqlDbType.Int).Value = (!String.IsNullOrEmpty(TxtPremium.Text)) ? int.Parse(TxtPremium.Text) : (object)DBNull.Value;
                cmd.Parameters.Add("@totalamountpremium", SqlDbType.Int).Value = (!String.IsNullOrEmpty(TxtTotalAmountPremium.Text)) ? int.Parse(TxtTotalAmountPremium.Text) : (object)DBNull.Value;
                cmd.Parameters.Add("@totalamountpaid", SqlDbType.Int).Value = (!String.IsNullOrEmpty(TxtTotalAmountPaid.Text)) ? int.Parse(TxtTotalAmountPaid.Text) : (object)DBNull.Value;
                //d.Parameters.Add("@yeildestimates", SqlDbType.Int).Value = (!String.IsNullOrEmpty(TxtYeildEstimates.Text)) ? int.Parse(TxtYeildEstimates.Text) : (object)DBNull.Value;
                cmd.Parameters.Add("@certstatus", SqlDbType.VarChar, 100).Value = comboBox1.Text;
                sqlConn.Open();

Ответы [ 2 ]

1 голос
/ 26 августа 2011

Не похоже, что параметр параметр покупки используется где-либо.

Может быть, попробовать что-то вроде этого:

   //cmd.Parameters.Add("@purchasedate", SqlDbType.DateTime).Value = Date.Text;
   if (Date.Checked)
        cmd.Parameters.AddWithValue("@purchasedate", Date);
   else
        cmd.Parameters.AddWithValue("@purchasedate", DBNull.Value);
0 голосов
/ 26 августа 2011

Не имеет ли это отношения к следующим строкам?

cmd.Parameters.Add("@purchasedate", SqlDbType.DateTime).Value = Date.Text;
if (Date.Checked)
    cmd.Parameters.AddWithValue("purchdate", Date);
else
    cmd.Parameters.AddWithValue("purchdate", DBNull.Value);

Вы устанавливаете параметр @purchasedate вне if, поэтому он всегда установлен.

Если этоЭто не проблема, вы должны опубликовать код пользовательского интерфейса, чтобы мы могли получить дополнительную информацию, чтобы ответить.

...