ASP.net处理数据集中的数据
本文关键字:数据 集中 数据集 ASP 处理 net | 更新日期: 2023-09-27 17:59:23
我已经设法连接到一个数据库间数据库,从数据库中获取数据并将其存储在数据集中,我需要操作数据集中的一些数据,并执行以下操作,
在数据集中添加一个名为total的新列,对于每一行,我需要添加第2列和第3列,并将结果放入total列中。
有人能告诉我如何做到这一点吗?我使用以下代码将数据放入数据集。
OdbcConnection conn = new OdbcConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString;
DataSet ds = new DataSet();
OdbcDataAdapter da = new OdbcDataAdapter("SELECT * FROM MTD_FIGURE_VIEW1", conn);
da.Fill(ds);
这是最简单的方法
ds.Tables[0].Columns.Add("Sum", typeof(double), "Col1 + Col2");
如果您确信列值永远不会为null或为空,那么最好的方法是
ds.Tables[0].Columns.Add("Sum", typeof(double), "Col1 + Col2");
如果您的任何列的值为null,那么它不会给出任何异常,但总值也将为空。。。
如果可以有任何空值,那么尝试这个
dt.Columns.Add("Total", typeof(double));
foreach (DataRow dr in dt.Rows)
{
if (String.IsNullOrEmpty(dr["col1"].ToString()))
dr["col1"] = 0.0;
if (String.IsNullOrEmpty(dr["col2"].ToString()))
dr["col2"] = 0.0;
dr["Total"] = Convert.ToDouble(dr["col1"]) + Convert.ToDouble(dr["col2"]);
}
在这种情况下,如果您从不检查null或空值,那么这将给您一个运行时异常。。。
以下是如何操作数据集中的一些数据
ds.Tables[0].Columns.Add("Sum", typeof(string));
foreach (DataRow drRow in ds.Tables[0].Rows)
{
drRow["Sum"] = (Convert.ToInt32(drRow["Col1"].ToString()) + Convert.ToInt32(drRow["Col2"].ToString())).ToString();
}
-更新--
如下所示,使用三元运算符:
drRow["Sum"] =
(string.IsNullOrEmpty(drRow["Col1"].ToString()) ? 0.00 : Convert.ToDouble(drRow["Col1"].ToString())) +
(string.IsNullOrEmpty(drRow["Col2"].ToString()) ? 0.00 : Convert.ToDouble(drRow["Col2"].ToString()));
您是否考虑过让数据库完成工作
OdbcDataAdapter da = new OdbcDataAdapter("SELECT *, (col1+col2) as sum FROM MTD_FIGURE_VIEW1", conn);
附言:你可能想去掉你的select*并使用columames