没有错误,但DataGridView有问题

时间:2015-03-19 20:25:55

标签: c# sql datagridview

我粗略地将vb.net代码翻译成c#用于我正在为学校编码的简单POS系统。但是当我尝试使用按钮单击事件向datagrid添加内容时,datagrid中没有任何更改。没有错误。数据网格没有连接到数据库,至少现在还没有。

这是我向datagrid插入内容的代码:

private void txtAdd_Click(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(txtProduct.Text) & !string.IsNullOrEmpty(txtQuantity.Text) & !string.IsNullOrEmpty(txtPrice.Text))
    {
        var with = dataSales;

        int ii = 0;
        int orderproduct = 0;
        int count = 0;
        for (ii = 0; ii <= with.RowCount - 1; ii++)
        {
            if (txtProduct.Text == Convert.ToString(dataSales[0, ii].Value))
            {
                count = count + 1;
                if (count != 0)
                {
                    orderproduct = Convert.ToInt32(dataSales[2, ii].Value) + Convert.ToInt32(txtQuantity.Text);

                    dataSales[2, ii].Value = orderproduct;
                    dataSales[3, ii].Value = Convert.ToInt32(dataSales[2, ii].Value) * Convert.ToInt32(dataSales[1, ii].Value);

                }

                else
                {
                    if (count == 0)
                    {
                        float sum = Convert.ToInt32(txtPrice.Text) * Convert.ToInt32(txtQuantity.Text);
                        dataSales.Rows.Add(txtProduct.Text, txtPrice.Text, txtQuantity.Text, sum);
                        count = 0;
                    }

                    txtProduct.Clear();
                    txtQuantity.Clear();
                    txtPrice.Clear();

                }
            }
            else
            {
                MessageBox.Show("Nothing is Selected", "Error");
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

跟着你的柜台,你会明白为什么你再也没有得到任何补充。您从0开始,但每次添加要添加的文本时都会添加+1。在调试和观看时使用它。

已编辑:由于您的评论,您不知道如何调试。在Visual Studio中打开.cs文件,单击字段左侧边距(在下面的行中):

if (!string.IsNullOrEmpty(txtProduct.Text) & !string.IsNullOrEmpty(txtQuantity.Text) & !string.IsNullOrEmpty(txtPrice.Text))

现在启动程序,输入文本并运行它。它会在那条线上停下来。然后,您可以按F11,它将转到增加计数器的行。这意味着您将始终运行此分支。

            if (count != 0)
            {
                orderproduct = Convert.ToInt32(dataSales[2, ii].Value) + Convert.ToInt32(txtQuantity.Text);

                dataSales[2, ii].Value = orderproduct;
                dataSales[3, ii].Value = Convert.ToInt32(dataSales[2, ii].Value) * Convert.ToInt32(dataSales[1, ii].Value);

            }

注意:您不需要:

if (count == 0)
{
}

为什么呢?您已经向其他分支发送了不是0的任何内容。此时其他就足够了,不需要浪费一个周期来确定总是零的东西是否为零