关于DATATABLE的一些操作

关于DATATABLE的一些操作

最近用公司的数据库,但是不能进行表关联等查询。所以就需要用到两个datatable之间的操作来达到表关联等效果。在此总结一些:

  1. 判断是否为空:
//直接用这个判断即可,是不是很简单
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"] = "";
	}
  1. 排序
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);
		}
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值