Atul Rokade Ответов: 1

Как вставить числовое значение в базу данных


Всем привет,

Я пытаюсь вставить числовое значение в базу данных с помощью datagridview но он не вставил еще два поля вставлено успешно но числовое значение когда я пытаюсь вставить его вставлено как 0

Что я уже пробовал:

  private void dataGridView1_RowLeave(object sender, DataGridViewCellEventArgs e)
        {
  if (dataGridView1.IsCurrentRowDirty)
            {
                string connectionString = null;
                connectionString = ConfigurationManager.ConnectionStrings["AccessConnectionString"].ConnectionString;
                con.ConnectionString = connectionString;

                string cmd1 = "insert into Medicine_Available_Detail([Medicine_Name],[Dealer_name],[total_available])values(?,?,?)";
                OleDbCommand cmd = new OleDbCommand(cmd1, con);

                cmd.CommandType = CommandType.Text;

                string Medicine_Name = dataGridView1.Rows[e.RowIndex].Cells["Medicine_Name"].Value.ToString();
                cmd.Parameters.AddWithValue("@Medicine_Name", Medicine_Name);

                string Dealer_name = dataGridView1.Rows[e.RowIndex].Cells["Dealer_name"].Value.ToString();
                cmd.Parameters.AddWithValue("@Dealer_name", Dealer_name);

 int Availabilty;
                bool total_availableHasValue = Int32.TryParse(dataGridView1.Rows[e.RowIndex].Cells["total_available"].Value.ToString(), out Availabilty);
                cmd.Parameters.AddWithValue("@total_available", total_availableHasValue);
 con.Open();
                int n = cmd.ExecuteNonQuery();
                con.Close();
}

1 Ответов

Рейтинг:
0

Richard MacCutchan

Вы пытаетесь использовать логическое значение total_availableHasValue в качестве параметра базы данных, а не анализируемого целого числа Availabilty (который должен быть написан по буквам Availability).


Atul Rokade

1-й привет Ричард, спасибо Вам большое за РПЛ я изменить код, как показано ниже

Int Availability = Int32.Метод tryparse(dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки ["total_available"].Ценность.ToString (), Out Availability);
УМК.Параметры.AddWithValue ("@total_available", доступность);

но это дает мне
Невозможно неявно преобразовать тип 'bool' в' int ' ошибка

Richard MacCutchan

Почему вы меняете эту линию - она была правильной? Вы используете неправильное значение для отправки в базу данных:

cmd.Parameters.AddWithValue("@total_available", total_availableHasValue);

Atul Rokade

успешная вставка значения! сообщение пришло, но значение insert как 0 в этом столбце

Atul Rokade

инт наличии;
боол total_availableHasValue = int32 значение.Метод tryparse(dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки ["total_available"].Ценность.ToString (), Out Availability);
УМК.Параметры.AddWithValue ("@total_available", total_availableHasValue);

Atul Rokade

я использовал отладчик на
УМК.Параметры.AddWithValue ("@total_available", total_availableHasValue);

-- total_availableHasValue показывает мне ложь

но в datagridview я ввожу 22

Richard MacCutchan

Насколько трудно вам увидеть, что вы используете неправильная переменная отправить в базу данных? Посмотрите внимательно на код, который вы написали.

Atul Rokade

инт наличии;
боол total_availableHasValue = int32 значение.Метод tryparse(dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки ["total_available"].Ценность.ToString (), Out Availability);
УМК.Параметры.AddWithValue ("@total_available", доступность);

я меняю код, но все равно вставляю значение 0 в базу данных

Richard MacCutchan

Вы не проверили возвращаемое значение total_availableHasValue чтобы увидеть, был ли анализ содержимого ячейки успешным. Вам нужно снова использовать свой отладчик, чтобы проверить, что происходит. Вы уверены, что извлекаете действительное число из DatagridView?

Atul Rokade

@Ричард я изменить код, теперь друг

инт наличии;
боол total_availableHasValue = int32 значение.Метод tryparse(dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки ["total_available"].Ценность.ToString (), Out Availability);




если (total_availableHasValue)
{
УМК.Параметры.AddWithValue ("@total_available", доступность);
}
ещё
{
УМК.Параметры.AddWithValue ("@total_available", DBNull.Ценность);
}

но все тот же вопрос :(

Richard MacCutchan

Затем вам нужно использовать свой отладчик, чтобы точно увидеть, что происходит. Я не могу догадаться, какое значение исходит от DatagridView и правильно ли оно преобразуется. Эта ячейка-строка или число? Если это уже число, то вам не нужно преобразовывать его в строку, чтобы разобрать его на целое число.

Atul Rokade

я перепробовал все, что кто-нибудь может мне помочь, как вставить числовое значение для доступа к базе данных через datagridview

Richard MacCutchan

Почему вы опубликовали этот комментарий? Я изо всех сил старался помочь вам и даже сказал, на что смотреть с помощью вашего отладчика. Это зависит от вас, чтобы сделать диагностическую работу, так как вы единственный человек, имеющий доступ к приложению и данным для его тестирования.