C#使用数据行中的值计算金额 公共字符串getKlantreferte(字符串rr、字符串kbo、字符串名称) { 如果(rr!=“”) { 返回rr; } 如果(kbo!=“”) { 返回kbo; } 如果(名称!=“”) { 返回名称; } 返回“”; } public void setText(string changetext)//自动在richtextbox中追加文本 { rtb.AppendText($“{changetext}{Environment.NewLine}”); Application.DoEvents(); } 字符串klantreferte=“”; 公共双计算模板(数据表dt,字符串klantreferte) { 双schadebeding=0; foreach(数据行中的数据行); { } 返回schadebeding; } //循环数据表 //如果klantreferte==getKlantreferte(..) //-->schadebding+数据行[4] //如果Klanreferte!=getKlantreferte //-->创建新的计算 //然后计算10%的“schadebeding” //然后检查schadebeding 40是否返回40,如果40是否返回schadebeding

C#使用数据行中的值计算金额 公共字符串getKlantreferte(字符串rr、字符串kbo、字符串名称) { 如果(rr!=“”) { 返回rr; } 如果(kbo!=“”) { 返回kbo; } 如果(名称!=“”) { 返回名称; } 返回“”; } public void setText(string changetext)//自动在richtextbox中追加文本 { rtb.AppendText($“{changetext}{Environment.NewLine}”); Application.DoEvents(); } 字符串klantreferte=“”; 公共双计算模板(数据表dt,字符串klantreferte) { 双schadebeding=0; foreach(数据行中的数据行); { } 返回schadebeding; } //循环数据表 //如果klantreferte==getKlantreferte(..) //-->schadebding+数据行[4] //如果Klanreferte!=getKlantreferte //-->创建新的计算 //然后计算10%的“schadebeding” //然后检查schadebeding 40是否返回40,如果40是否返回schadebeding,c#,.net,C#,.net,我需要一个通过非常具体的参数计算值的函数的帮助。 我理解需要发生什么,正如您将在//我的代码注释中看到的那样。 尽管如此,每当我试图实际实施它时,我似乎遇到了困难。 我已经在datatable上编写了循环,但是“if”参数让我明白了这一点。Hi最终您可以使用table.Compute-function:-->ADO.NET public string getKlantreferte(string rr, string kbo, string name) { if

我需要一个通过非常具体的参数计算值的函数的帮助。 我理解需要发生什么,正如您将在//我的代码注释中看到的那样。 尽管如此,每当我试图实际实施它时,我似乎遇到了困难。
我已经在datatable上编写了循环,但是“if”参数让我明白了这一点。

Hi最终您可以使用table.Compute-function:-->ADO.NET

    public string getKlantreferte(string rr, string kbo, string name)
    {

        if (rr != "")
        {
            return rr;
        }

        if (kbo != "")
        {
            return kbo;
        }

        if (name != "")
        {
            return name;
        }

        return "";

    }



    public void setText(string changetext) //Automatically appends text in richtextbox
    {
        rtb.AppendText($"{changetext}{Environment.NewLine}");
        Application.DoEvents();
    }

    string klantreferte = "";
    public double calculateSchadebeding(DataTable dt, string klantreferte)
    {
        double schadebeding = 0;

        foreach (DataRow row in dt.Rows) ;
         {

         }


        return schadebeding;
    }

        //loop over datatable

        // if klantreferte == getKlantreferte(....) 
        //--> schadebding + Datarow[4]

        //if klantreferte != getKlantreferte
        //--> create a new calculation


        // then calculate 10% of the 'schadebeding'
        // Then check if schadebeding 40 >     --> return 40,     if 40 <    --> return schadebeding
您可以在此处将条件设置为第二个参数EmpID=5


另请参见侧注:不要放置
Application.DoEvents()(让Windows 3.1风格安静下来)。如果您不想冻结UI,请使用
async
/
wait
编辑您的代码,使其最小化,如.Typo<代码>foreach(数据行中的数据行);{}
-删除
否则
{…}
块没有意义
private void ComputeBySalesSalesID(DataSet dataSet)
{
    // Presumes a DataTable named "Orders" that has a column named "Total."
    DataTable table;
    table = dataSet.Tables["Orders"];

    // Declare an object variable.
    object sumObject;
    sumObject = table.Compute("Sum(Total)", "EmpID = 5");
}