将值动态添加到 MS 访问数据库并使用变量检索它们

Posted

技术标签:

【中文标题】将值动态添加到 MS 访问数据库并使用变量检索它们【英文标题】:Dynamically Add values to MS access database and retrieve them using variables 【发布时间】:2018-05-19 04:31:41 【问题描述】:

我有一个 MS 访问数据库,其中包含一个名为 tarriff_table 的表。在此表中,我有两列 upperLimitperUnitCost。我有一个表格来插入这个值。现在我想使用这些值在代码中进行计算。我有代码的结构,但我无法将数据库值连接到我使用的变量。

这里是代码。

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 变量。我该怎么做?

我希望从数据库中提取这些变量(upperLimit1upperLimit2perUnitCost1PerUnitCost2)值。

重要提示:代码段中perUnitCost2表示数据库中perUnitCost列第二行的值。

注意:可以通过在将所有值插入数据库之前计算所有值来解决这些问题。通过这样做,编译时间可以减少一半。由于编译器不必插入值并再次检索它们执行计算。

第二个注意:我发现我需要一个连接字符串来连接到数据库。我希望版主关闭这个话题。

【问题讨论】:

这段代码有什么问题?该代码没有任何与 Ms-Access 数据库相关的内容。 我想将此代码的变量(upperLimit[],range[]) 分别连接到数据库列(upperLimit, perUnitCost)。但我不知道该怎么做? @ChetanRanpariya 而且您不知道如何编写代码来连接到 MS-Access 数据库并从表中查询值? 我知道如何手动连接数据库。但我不知道如何将这些值动态存储到变量中,以便使用上面给出的代码中的值。 How to query MS Access database with C# application?的可能重复 【参考方案1】:

这是我的问题的解决方法。

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");
    

【讨论】:

以上是关于将值动态添加到 MS 访问数据库并使用变量检索它们的主要内容,如果未能解决你的问题,请参考以下文章

使用DAO将值从java类传递给jsp页面

Flash AS3 动态添加子项。命名它们并调用每个分开的问题

如何在后端使用 java 和 Ms 访问获取字符串并添加到下拉列表

Grails 2 服务中的多个动态数据源

VB.net 获取标量以将值保存到变量

如何将从 ms 访问表中检索到的记录插入到 sql server 表中?