我粗略地将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");
}
}
}
}
答案 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的任何内容。此时其他就足够了,不需要浪费一个周期来确定总是零的东西是否为零