Mandema Ответов: 1

Как добавить строку с моими текущими кодами


У меня есть форма с двумя gridview, в одной из которых отображаются результаты поиска .textbox, а в другой-выбранная строка из первого представления сетки . Затем строки во втором gridview сохраняются в базе данных вызова неоплаченных чеков.

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

private void btnadd_Click(object sender, EventArgs e)
{
    for (int i = dataGridView1.RowCount - 1; i <= 0; i++)
    {
        DataGridViewRow row = dataGridView1.Rows[i];
       
        if (Convert.ToBoolean(row.Cells["selectrow"].Value = true))
        {
            Formq pan = new Formq();
            pan.ShowDialog(); 
            string may = Formq.mark1;
           productBindingSource4.AddNew();
            dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[1].Value = dataGridView1.Rows[i].Cells[1].Value.ToString();
            dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[2].Value = dataGridView1.Rows[i].Cells[2].Value.ToString();
            dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[3].Value = dataGridView1.Rows[i].Cells[3].Value.ToString();
            dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[4].Value = dataGridView1.Rows[i].Cells[4].Value.ToString();
            dataGridView2.Rows[dataGridView2.Rows.Count-1].Cells["quantity"].Value = may;
           int qu = Int32.Parse(dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells["quantity"].Value.ToString());
            string pp = dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[3].Value.ToString();
            Double rpp = Double.Parse(pp);
            Decimal rrpp = (decimal)rpp;

            Decimal tp = rrpp * qu;
            dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells["tprice"].Value = tp + ".00";

            Double sum = 0;
            for (int f = 0; f < dataGridView2.Rows.Count; f++)
            {
                sum += double.Parse(dataGridView2.Rows[f].Cells[6].Value.ToString());
            }
            string msun = (sum.ToString());
            libt2.Text = msun;

Затем его форма закрывается и создается динамическая кнопка. Когда я хочу обновить данные в unpaidchecks . Я использую это
private void btn_Click(object sender, EventArgs e)
{
    this.Hide();
    salesitems op = new salesitems();
    op.Show();
    int i = 0;
   Button btn = sender as Button;
   string btntext = btn.Text;
   kk.getunpaid(int.Parse(btn.Text));
   op.dataGridView2.DataSource = kk.getunpaid(int.Parse(btn.Text));
    
    foreach (var  dy in kk.getunpaid(int.Parse(btn.Text)))
    {
        op.dataGridView2.Rows[i].Cells["quantity"].Value = dy.quantity.ToString();
        op.dataGridView2.Rows[i].Cells["Tprice"].Value = dy.tprice.ToString();
        i++;
        op.libtabsno.Text = dy.tabel_sno_.ToString();
        op.libuser.Text = dy.user.ToString();
        op.libtno.Text = dy.tabel_no_.ToString();
        op.libt2.Text = dy.total.ToString()

Но проблема в том , что он не добавляет новую строку.
Этот код доза не работает когда
productBindingSource4.AddNew();

Нажата динамическая кнопка
Мне нужна помощь

Jo_vb.net

Вам нужна новая пустая строка ?

И я не вижу productBindingSource4.Конец света

Mandema

Да, поэтому в основном я использую .addnew (), чтобы добавить новую строку в источник привязки, а затем в gridview она привязана к источнику привязки

Jo_vb.net

Возможно, нам было бы легче, если бы у нас был полный код ваших личных Пустотников

С productBindingSource4.метод AddNew();
Появляется ли только пустая строка и никаких данных, или вы получаете ошибку или что-то еще?

Я думаю, что с BindingSource.AddNew() может работать только импорт из связанных текстовых полей.

1 Ответов

Рейтинг:
0

OriginalGriff

Без ваших данных и форм для их обработки мы ничего не сможем сделать.

Так что все будет зависеть от тебя.
К счастью, у вас есть инструмент, который поможет вам выяснить, что происходит: отладчик. Если вы не знаете, как его использовать, то быстрый Google для "Visual Studio debugger" должен дать вам необходимую информацию.

Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!


Mandema

Я был бы признателен, если в следующий раз, когда у вас не будет никакой помощи, не говорите ничего. Вместо того, чтобы подорвать меня . Первое, что вы узнаете после написания кода, - это его отладка .
Спасибо

OriginalGriff

Затем объясните, что вы сделали для отладки вашего приложения: на данный момент все, что вы сказали, это "вот мой код: он не работает".

Это не показывает нам ничего похожего на отладку или попытку решить, в чем проблема - это просто поднимает руки вверх и говорит: "исправьте это для меня, я не знаю, что я делаю".

Так что слезай со своего высокого коня и учись правильно задавать вопросы?