C# 如何在按钮单击事件中执行if-else条件语句

C# 如何在按钮单击事件中执行if-else条件语句,c#,C#,我这里有个情况。我需要根据用户在窗口窗体上提供的内容向表中插入值。 如果一个好的东西不存在,并且获得了超过需要的东西,那么多余的东西必须输入到一个名为“BulkAvailable”的表中,这就是我的代码中存在一个大的地方,因为当我注释掉这部分时,代码运行良好。 请找到下面的代码 try { SqlConnection con = new SqlConnection("Data Source=PV10\\LOCALSER

我这里有个情况。我需要根据用户在窗口窗体上提供的内容向表中插入值。 如果一个好的东西不存在,并且获得了超过需要的东西,那么多余的东西必须输入到一个名为“BulkAvailable”的表中,这就是我的代码中存在一个大的地方,因为当我注释掉这部分时,代码运行良好。 请找到下面的代码

           try
            {
                SqlConnection con = new SqlConnection("Data Source=PV10\\LOCALSERVER;Initial Catalog=SmallSoftwareDB;Integrated Security=True;Pooling=False");
                con.Open();
                float a = float.Parse(textBox8.Text, System.Globalization.CultureInfo.InvariantCulture);
                int b = int.Parse(textBox9.Text);
                float c = a * b;
                var T = c.ToString(System.Globalization.CultureInfo.InvariantCulture);

                float x = float.Parse(textBox4.Text, System.Globalization.CultureInfo.InvariantCulture);
                int z = int.Parse(textBox3.Text);
                float y = x * z;
                var total = y.ToString(System.Globalization.CultureInfo.InvariantCulture);

                int d = b - z;

                string uba = "insert into BulkSale(ProductName, ProductSource, Date, Quantity, Type, UnitPrice, Total, Nature) values('" + textBox1.Text + "', '" + textBox2.Text + "', '" + dateTimePicker1.Value + "', '" + textBox3.Text + "', '" + textBox6.Text + "', '" + textBox4.Text + "', '" + textBox5.Text + "', '"+textBox7.Text+"')";
                string A = "insert into BulkInput(ProductName, ProductSource, Date, Quantity, Type, UnitPrice, Total, Nature) values('"+textBox1.Text+"','"+textBox2.Text+"','"+dateTimePicker1.Value+"','"+b+"','"+textBox6.Text+"','"+a+"','"+c+"', '"+textBox7.Text+"')";
                SqlCommand cmd = new SqlCommand(uba, con);
                SqlCommand X = new SqlCommand(A, con);
                cmd.ExecuteNonQuery();
                X.ExecuteNonQuery();

                try
                {
                    if (int.Parse(textBox9.Text) > int.Parse(textBox3.Text))
                    {
                        string B = "insert into BulkAvailable(ProductSource,ProductName,Date,Quantity,Type) values('" + textBox2.Text + "','" + textBox1.Text + "','" + dateTimePicker1.Text + "','" + d + "','" + textBox6.Text + "')";
                        SqlCommand Bc = new SqlCommand(B, con);
                        Bc.ExecuteNonQuery();
                    }

                    else
                    {
                        MessageBox.Show("You successfully Bought and Sold", " ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }
                catch (Exception aze)
                {
                    MessageBox.Show(aze.Message, " ", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }

                MessageBox.Show("Operation Successfully Executed", " ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                con.Close();
            }
            catch (Exception er) 
            {
                MessageBox.Show(er.Message, " ", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
当我运行代码时,它会返回一条异常消息:
“二进制数据字符串将被截断。语句已终止”

您应该检查数据库中的字段。此错误意味着您正在尝试插入长度超过字段边界的字符串

因此,例如,如果将db field
ProductName
定义为
varchar(50)
,并尝试插入包含52个字符的值,则会收到此错误

我们无法告诉您发生这种情况的确切字段,您应该手动检查。您可以尝试在数据库中执行查询,并查看错误是否给出了字段名,但在过去这种情况不会发生


您应该对字段执行一些验证检查,如果它们超过某个
长度
显示错误消息或使用
子字符串
方法剪切字符串。

在哪个行号中?您需要重写此项以使用,您很容易受到SQL注入的影响。(在其中一个文本框中放置一个
,看看会发生什么)错误是因为您试图将文本放入一个超过该列最大长度的表列中。您泄漏了资源,因为您留下了很多未经处理的内容,请不要尝试此操作!!!想象一个恶意用户输入
”);将表格输入
放入文本框7。你认为会发生什么?试着在心里构造
字符串A
,帮助自己认识到从最终用户提供的字符串构造SQL的严重危险。希望OP能看到一个更大的问题。。。也就是说,他写的东西到处都有SQL注入漏洞。如果(int.Parse(textBox9.Text)>int.Parse(textBox3.Text)){string B=“insert-into-BulkAvailable(ProductSource,ProductName,Date,Quantity,Type)值(“+textBox2.Text+”,“+textBox1.Text+”,“+dateTimePicker1.Text+“,”,“+d+”,“+textBox6.Text+”);“SqlCommand Bc=new-SqlCommand(B,con);Bc.ExecuteNonQuery();}@Indra所以请检查所有接受此文本框的字段。文本并在数据库中查看它们的定义。就像我说的,我们不能告诉您是哪个字段造成了问题。您应该自己检查。谢谢大家。我会交叉检查作为建议。我会保留你们所有人posted@Indra如果答案对你有帮助,你可以把它标记为正确。