Ado.net 获取表列的属性

SqlDataAdapter获取表中每列的属性,必须加上sda.FillSchema(ds, SchemaType.Source);

private DataTalbe sqlCon(string sqlStr)
{
	string conStr = txtConStr.Text.Trim();
	using(SqlConnetcion con = new SqlConnection(conStr))
	{
		con.Open();
		using(SqlCommand cmd = new SqlCommand(sqlStr, con))
		{
			DataSet ds = new DataSet();
			SqlDataAdapter sda = new SqlDataAdapter(cmd);
			sda.FillSchema(ds, SchemaType.Source);
			sda.Fill(ds);
			DataTable dt = ds.Tables[0];
			return dt;
		}
	}
}

如果SqlDataAdapter中不使用sda.FillSchema(ds, SchemaType.Source),则在获取每列属性的时候很多属性是获取不到的,比如:

// 为值类型的列加上?标识符,则可以赋值null
private string GetDbType(DataColumn dc)
{
	if(dc.AllowDBNull && dc.DataType.IsValueType)
	{
		return dc.DataType + “?”;
	}
	else
	{
		return dc.DataType.ToString();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值