DataColumn DefaultValue Property
The .NET framework's DataColumn represents the schema of a column in a
DataTable. DataColumn class exists in the System.Data namespace.
We can initialize a new DataColumn class by many constructors such as DataColumn(), DataColumn(String), DataColumn(String, Type), etc. DataColmun() constructor initializes a new DataColumn class instance as a type String.
The DataColumn DefaultValue property allows us to get or set the default value for the column when we are creating new rows. DefaultVlaue property value data type is a String which represents a value appropriate to the column's DataType.
DataColumn DefaultVlaue property throws an InvalidCastException exception when we are adding a row and the default value is not follow the column's data type.
When we create a new DataRow, a default value is automatically assigned to the column in which the DefaultVlaue property is set. If we set AutoIncrement value to true for a DataColumn, then we cannot set a default value for the column.
The following ADO.NET C# example code demonstrates to us how can we specify a default value for a DataColumn in an ASP.NET application.
We can initialize a new DataColumn class by many constructors such as DataColumn(), DataColumn(String), DataColumn(String, Type), etc. DataColmun() constructor initializes a new DataColumn class instance as a type String.
The DataColumn DefaultValue property allows us to get or set the default value for the column when we are creating new rows. DefaultVlaue property value data type is a String which represents a value appropriate to the column's DataType.
DataColumn DefaultVlaue property throws an InvalidCastException exception when we are adding a row and the default value is not follow the column's data type.
When we create a new DataRow, a default value is automatically assigned to the column in which the DefaultVlaue property is set. If we set AutoIncrement value to true for a DataColumn, then we cannot set a default value for the column.
The following ADO.NET C# example code demonstrates to us how can we specify a default value for a DataColumn in an ASP.NET application.
DataColumnDefaultValue.aspx
<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html>
<script runat="server">
void Button1_Click(object sender, System.EventArgs e)
{
DataTable dt = new DataTable();
dt.TableName = "Books";
DataColumn dc = new DataColumn();
dc.ColumnName = "BookID";
dc.DataType = typeof(int);
dt.Columns.Add(dc);
DataColumn dc2 = new DataColumn();
dc2.ColumnName = "BookName";
dc2.DataType = typeof(string);
dt.Columns.Add(dc2);
DataColumn dc3 = new DataColumn();
dc3.ColumnName = "BookAuthor";
dc3.DataType = typeof(string);
//this line make DataColumn default value 'author not found'
dc3.DefaultValue = "author not found";
dc3.AllowDBNull = false;
dt.Columns.Add(dc3);
dt.Rows.Add(new object[] { 1, "HTML5 Step by Step", "Faithe Wempen" });
dt.Rows.Add(new object[] { 2, "asp.net example ebook", null });
dt.Rows.Add(new object[] { 3, "Painting the Web", "Shelley Powers" });
dt.Rows.Add(new object[] { 4, "coldfusion example ebook", null });
GridView1.DataSource = dt;
GridView1.DataBind();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>DataColumn DefaultValue - How to create data column with default value in ado.net</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h2 style="color:DarkBlue; font-style:italic;">
DataColumn DefaultValue - How to create
<br /> data column with default value in ado.net
</h2>
<hr width="500" align="left" color="CornFlowerBlue" />
<asp:GridView
ID="GridView1"
runat="server"
BorderColor="Snow"
ForeColor="Snow"
Width="550"
>
<HeaderStyle BackColor="Magenta" ForeColor="Snow" Height="30" />
<RowStyle BackColor="SandyBrown" ForeColor="Maroon" />
<AlternatingRowStyle BackColor="Wheat" ForeColor="Maroon" />
</asp:GridView>
<br />
<asp:Button
ID="Button1"
runat="server"
OnClick="Button1_Click"
Text="Populate GridView"
Height="45"
Font-Bold="true"
ForeColor="DodgerBlue"
/>
</div>
</form>
</body>
</html>