如何解决ASP.net操纵数据集中的数据
| 我已经设法连接到一个内部数据库,并从数据库中获取数据并将其存储在数据集中,我需要操纵数据集中的某些数据并执行以下操作, 在数据集中添加一个名为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);
解决方法
如果您确定列值永远不会为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\",\"Col1 + Col2\");
, 以下是如何>处理数据集中的某些数据
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);
PS:您可能想摆脱选择*并使用columnames
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。