C# 使用C在datatable值之间的表达式#
我想在datatable中的值之间声明数学表达式,例如:我有两列,分别名为'Variable'(字符串)和'Contents'(浮点),我在'Variables'中插入了3个字符串a、b和c,在'Contents'中,3个浮点为0,现在我想在代码中声明'a=b+c',当我点击一个'button'时,变量a将在datatable中更改为9。这是我的代码,但它不工作!!请帮帮我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) {
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”]
处的某个内容不是有效的双精度。在任何情况下,如果没有完整的异常堆栈跟踪,并且不知道这些单元格的确切内容,我们只能猜测。