可以用SQL语句取值的时候 转换一下 select (case when CONVERT(varchar(12),列名,111) is null then '' when CONVERT(varchar(12),列名,111)='1900/01/01' then '' else CONVERT(varchar(12),列名,111) end) from ...
DataTable dt2 = dt.Clone(); dt2.Columns["accountname"].DataType = Type.GetType("System.String"); for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt2.NewRow(); for (int j = 0; j < dt.Columns.Count; j++) { if (dt.Columns[j].ColumnName == "ns") { dr[j] = dt.Rows[i][j].ToString(); } else { dr[j] = dt.Rows[i][j]; } } dt2.Rows.Add(dr); } dt.Dispose();绑dt2 可用性很低
你应该在DataGrid的绑定的时候去格式化你这个列
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i]["ns"] == DBNull.Value)
{
dt.Rows[i]["ns2"] = "";
}
else
{
dt.Rows[i]["ns2"] = dt.Rows[i]["ns"].ToString();
}
}
绑ns2
http://dev.csdn.net/develop/article/20/20307.shtm你可以在ItemDataBound事件中
或者直接在ASPX中调用.cs的方法如果你像楼上说的那样
还要判断下是否是1900
so :---事件 下的 操作
if(e.row.cell["columIndex"].Text=="1940-01-01")
{
e.row.cell["columIndex"].Text="";
}
dt.Columns["ns2"].SetOrdinal(dt.Columns["ns"].Ordinal);
dt.Columns.Remove("ns");试试
不可访问“System.Data.DataColumn.SetOrdinal(int)”,因为它受保护级别限制为什么会有错误呢?
小弟菜鸟不知道可不可以
select (case when CONVERT(varchar(12),列名,111) is null then ''
when CONVERT(varchar(12),列名,111)='1900/01/01' then ''
else CONVERT(varchar(12),列名,111) end)
from ...
dt2.Columns["accountname"].DataType = Type.GetType("System.String");
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = dt2.NewRow();
for (int j = 0; j < dt.Columns.Count; j++)
{
if (dt.Columns[j].ColumnName == "ns")
{
dr[j] = dt.Rows[i][j].ToString();
}
else
{
dr[j] = dt.Rows[i][j];
}
}
dt2.Rows.Add(dr);
}
dt.Dispose();绑dt2
可用性很低
{
// tm = Convert.ToInt32(ds.Tables[0].Rows[0][0]);
tm =(DateTime) ds.Tables[0].Rows[0][0];
}
else
{ DateTime tm = DateTime.Parse("");////或者任意时间,例如:DateTime tm = DateTime.Parse("2008-12-27");
}
您的方法好用,但是显示的日期格式是YYYY/MM/DD,怎么样能让它变成YYYY-MM-DD呢?