关于DATATABLE的一些操作
最近用公司的数据库,但是不能进行表关联等查询。所以就需要用到两个datatable之间的操作来达到表关联等效果。在此总结一些:
- 判断是否为空:
//直接用这个判断即可,是不是很简单
DataTable.Rows[i][j] == DBNull.Value
//下面一句也可以用,但是不知道那个效率更好,有兴趣的同学对比一下
if (!Convert.IsDBNull(dt.Rows[r][i]))
if (dtResultList != null && dtResultList.Rows.Count >0)
2.给datatable 增加列,或者对列进行操作`
根据dtResultList的某个值,对应的A的值,去取dt中的那一行,然后替换dtResultList的值,或添加一个新的列进去。
dtResultList.Columns.Add("", typeof(string));
for (int i = 0; i < dtResultList.Rows.Count; i++)
{
string ID = dtResultList.Rows[i]["A"].ToString();
DataRow[] dr = dt.Select("条件=A"); //查询条件
if (dr.Length.Equals(1)) //包含
{
int k = dt.Rows.IndexOf(dr[0]); //记录下该行数据的行号!
dtResultList.Rows[i]["A"] = dt.Rows[k]["A"].ToString(); //添加列数据
}
else{
dtResultList.Rows[i]["A"] = "";
}
- 排序
DataView dv = new DataView(dtResultList);
dv.Sort = order; //order是排序条件
DataTable dtList = dv.ToTable();
if (!string.IsNullOrEmpty(condition))//查询条件
{
dtList.Rows.Clear();
DataRow[] matches = dtResultList.Select(condition);
if (matches != null)
{
foreach (DataRow rows in matches)
{
dtList.Rows.Add(rows.ItemArray);
}
}
}