C# 使用C在datatable值之间的表达式#

C# 使用C在datatable值之间的表达式#,c#,sql,.net,datatable,C#,Sql,.net,Datatable,我想在datatable中的值之间声明数学表达式,例如:我有两列,分别名为'Variable'(字符串)和'Contents'(浮点),我在'Variables'中插入了3个字符串a、b和c,在'Contents'中,3个浮点为0,现在我想在代码中声明'a=b+c',当我点击一个'button'时,变量a将在datatable中更改为9。这是我的代码,但它不工作!!请帮帮我 private void button11_Click(object sender, EventArgs e) {

我想在datatable中的值之间声明数学表达式,例如:我有两列,分别名为'Variable'(字符串)和'Contents'(浮点),我在'Variables'中插入了3个字符串a、b和c,在'Contents'中,3个浮点为0,现在我想在代码中声明'a=b+c',当我点击一个'button'时,变量a将在datatable中更改为9。这是我的代码,但它不工作!!请帮帮我

private void button11_Click(object sender, EventArgs e)
    {

        con.Open();            
        SqlCommand cmd = con.CreateCommand();
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "select * from Table_sagemcom ";
        cmd.ExecuteNonQuery();
        DataSet ds1 = new DataSet();
        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(dt);
        DataRow dr1 = dt.Select("Variable='a'").FirstOrDefault();
        DataRow dr2 = dt.Select("Variable='b'").FirstOrDefault();
        DataRow dr3 = dt.Select("Variable='c'").FirstOrDefault();

        dr1["Contents"] = Convert.ToDouble(dr2["Contents"]) + Convert.ToDouble(dr3["Contents"]);

        ds1.Tables.Add(dt);

        con.Close();}

“不行!!”不清楚。您的代码是否会抛出异常?它是否运行但某些变量得到了意外值?它运行时可能与@Serg重复,但没有发生任何事情表中的'a'值始终保持不变='0'@Eugene Podskal你能再看看我编辑的答案吗@Aseljo它可能意味着
dt.Rows[1][“Variable”]
dt.Rows[2][“Variable”]
处的某个内容不是有效的
双精度
。在任何情况下,如果没有完整的异常堆栈跟踪,并且不知道这些单元格的确切内容,我们只能猜测。