我有一个MS访问数据库,其中包含一个名为tarriff_table的表。在此表中,我有两列upperLimit
& perUnitCost
。我有一个表单来插入这个值。现在我想使用这些值来计算代码。我有代码的结构,但我无法将数据库值连接到我使用的变量。
这是代码。
double demandCharge, VAT,upperLimit1, upperLimit2;
double perUnitCost1, perUnitCost2;
private void button1_Click(object sender, EventArgs e)
{
double con_unit = 0, bill = 0, mcon_unit = 0, totalbill = 0;
con_unit = double.Parse(textBox1.Text);
mcon_unit = double.Parse(textBox2.Text);
if (con_unit < upperLimit1)
{
bill = con_unit * perUnitCost1;
}
else if (con_unit < upperLimit2)
{
bill = (upperLimit1 * perUnitCost1) + ((con_unit - upperLimit1) * perUnitCost2);
}
else bill = (upperLimit1 * perUnitCost1) + ((upperLimit2 - upperLimit1) * perUnitCost2);
totalbill = Math.Ceiling((((((bill + demandCharge) * VAT)
+ (bill + demandCharge)) / (con_unit)) * (mcon_unit)));
textBox3.Text = Convert.ToString(totalbill);
}
这是代码的一部分。但我认为它可以产生我面临的问题。在这里,我想将upperLimit列连接到upperLimit变量,将perUnitCost列连接到perUnitCost变量。我该怎么办?
我希望从数据库中提取这些变量(upperLimit1
,upperLimit2
,perUnitCost1
,PerUnitCost2
)。
重要说明:在代码部分perUnitCost2
表示数据库中perUnitCost
列的第二行的值。
注意:通过在将所有值插入数据库之前计算所有值,可以解决这个问题。通过这样做编译时间可以减少一半。由于编译器不必插入值并再次检索它们执行计算。
第二个注意:我已经发现我需要一个连接字符串来连接数据库。我希望主持人能够结束这个话题。
答案 0 :(得分:0)
这是我的问题的解决方案。
private void btnsave_Click(object sender, EventArgs e)
{
string path = Path.Combine(Environment.CurrentDirectory, "Tenant info.mdb");
connect.ConnectionString = @"Provider=Microsoft.JET.OLEDB.4.0;Data Source="+ path;
double con_unit = 0, bill = 0, presr = 0, prevr = 0, mcon_unit = 0, totalbill = 0;
presr = double.Parse(textbox5.Text);
prevr = double.Parse(textbox37.Text);
con_unit = double.Parse(textbox38.Text);
mcon_unit = ((presr) - (prevr));
textBox2.Text = Convert.ToString(mcon_unit);
if (con_unit < 75)
{
bill = con_unit * 3.8;
}
else if (con_unit < 200)
{
bill = (75 * 3.8) + ((con_unit - 75) * 5.14);
}
else if (con_unit < 300)
{
bill = (75 * 3.8) + (125 * 5.14) + ((con_unit - 200) * 5.36);
}
else if (con_unit < 400)
{
bill = (75 * 3.8) + (125 * 5.14) + (100 * 5.36) + ((con_unit - 300) * 5.63);
}
else if (con_unit < 600)
{
bill = (75 * 3.8) + (125 * 5.14) + (100 * 5.36) + (100 * 5.63) + ((con_unit - 400) * 8.70);
}
else if (con_unit < 600)
{
bill = (75 * 3.8) + (125 * 5.14) + (100 * 5.36) + (100 * 5.63) + (200 * 8.70) + (con_unit * 9.98);
}
else bill = (75 * 3.8) + (125 * 5.14) + (100 * 5.36) + (100 * 5.63) + (200 * 8.70) + ((con_unit - 600) * 9.98);
totalbill = Math.Ceiling((((((bill + 70) * .05) + (bill + 70)) / (con_unit)) * (mcon_unit)));
textBox3.Text = Convert.ToString(totalbill);
tenantBillDataBindingSource.EndEdit();
tenantBillDataTableAdapter.Update(this.tenant_InfoDataSet.TenantBillData);
MessageBox.Show("Data Added to Database. Please Reopen the Form to Insert New Entry");
}