需求是这样的,已经有了DataTable架构,其中每个字段的类型都规定好了,比如有4个字段:id(varchar),name(varchar),age(int),LeaveTime(DataTime).这四个字段都不能为null。
现在要给这个DataTable中添加一行,只给主键id赋值,别的都为空,也就是string.Empty或""都可以。
问题是在添加的过程中,string.Empty不能转换成int类型或DataTime类型。
代码如下:
C# code
DataRow dr = ds.Tables[0].NewRow(); foreach (DataColumn col in ds.Tables[0].Columns)
{
if (col == ds.Tables[0].PrimaryKey[0])
{
dr[col.ColumnName] = "Insert_" + System.Guid.NewGuid();
}
else
{
dr[col.ColumnName] = Convert.ChangeType(string.Empty, col.DataType);
}
}
ds.Tables[0].Rows.Add(dr);
谢谢了
只要达到以下目的就可以了:
ds.GetXml();
Xml的形式如下:
<UserInfo>
</UserInfo>
现在要给这个DataTable中添加一行,只给主键id赋值,别的都为空,也就是string.Empty或""都可以。
问题是在添加的过程中,string.Empty不能转换成int类型或DataTime类型。
代码如下:
C# code
DataRow dr = ds.Tables[0].NewRow(); foreach (DataColumn col in ds.Tables[0].Columns)
{
if (col == ds.Tables[0].PrimaryKey[0])
{
dr[col.ColumnName] = "Insert_" + System.Guid.NewGuid();
}
else
{
dr[col.ColumnName] = Convert.ChangeType(string.Empty, col.DataType);
}
}
ds.Tables[0].Rows.Add(dr);
谢谢了
只要达到以下目的就可以了:
ds.GetXml();
Xml的形式如下:
<UserInfo>
</UserInfo>
DataRow dr = ds.Tables[0].NewRow();
foreach (DataColumn col in ds.Tables[0].Columns)
{
if (col == ds.Tables[0].PrimaryKey[0])
{
dr[col.ColumnName] = "Insert_" + System.Guid.NewGuid();
}
else
{
if(col.ColumnName=="age"){dr[col.ColumnName] = 0;}
if(col.ColumnName=="LeaveTime"){dr[col.ColumnName] = new DataTime;}
// dr[col.ColumnName] = Convert.ChangeType(string.Empty, col.DataType);
}
}
ds.Tables[0].Rows.Add(dr);
DataRow dr = ds.Tables[0].NewRow();
foreach (DataColumn col in ds.Tables[0].Columns)
{
if (col == ds.Tables[0].PrimaryKey[0])
{
dr[col.ColumnName] = "Insert_" + System.Guid.NewGuid();
}
else
{
if(col.ColumnName=="age"){dr[col.ColumnName] = 0;}
if(col.ColumnName=="LeaveTime"){dr[col.ColumnName] = new DataTime();}
// dr[col.ColumnName] = Convert.ChangeType(string.Empty, col.DataType);
}
}
ds.Tables[0].Rows.Add(dr);