在数据库中,如果我们为某字段设置了默认值,那么我们在添加数据的时候如果没有给该字段赋值,那么该字段就会自动将默认值填充进来。这在很多时候很大程度上给我们的的程序编写带来方便。那么,作为C#中的数据载体DataTable是不是也有默认值的设置呢?答案当然是有的,下面我们一起开始为DataTable的DataColumn设置默认值示例。
首先我们先了解一下DataColumn的DefaultValue属性:
DefaultValue-在创建新行的时候获取或者设置列的默认值。
开始示例:
protected void Page_Load(object sender, EventArgs e)
{
//创建一个新的DataTable
DataTable dt = new DataTable();
//创建一个新的DataColumn
DataColumn col = new DataColumn();
//设置DataColumn的列名
col.ColumnName = "abcd";
//设置DataColumn的类型
col.DataType = typeof(decimal);
//设置DataColumn的默认值
col.DefaultValue = 0;
//将DataColumn添加dt中
dt.Columns.Add(col);
DataRow dr = dt.NewRow();
Response.Write(dr[0].ToString());
}
输出:0
从上面的代码可以看出,我们在声明了dr后,并没有给dr赋任何值,但dr[0]却输出了0,这就说明了该行有自动应用了col.DefaultValue设置的默认值。
在网上有看到文章说,在添加列的时候,如果是通过 DataColumn col = new DataColumn("abcd",typeof(decimal));方式添加的,那么默认值就不起作用了,这种说法是不下正确的,我们可以修改上面的代码如下:
protected void Page_Load(object sender, EventArgs e)
{
//创建一个新的DataTable
DataTable dt = new DataTable();
//创建一个新的DataColumn
DataColumn col = new DataColumn("abcd",typeof(decimal));
//将DataColumn添加dt中
dt.Columns.Add(col);
//设置DataColumn的默认值
col.DefaultValue = 0;
DataRow dr = dt.NewRow();
Response.Write(dr[0].ToString());
}
运行,可以看到输出结果还是:0。这说明不管通过那种构造函数创建列,只要有设置了DataColumn.DefaultValue值,都是有效的。
以上为本人测试示例,如有考虑不周全的地方,请在评论中指出斧正,谢谢支持!
o/Downloads/DownloadDetails.aspx?DownloadID=52843" />