求在DataGrid中改变某字段值的简便方法,谢谢!
因为SQL SERVER中的 DATETIME 类型,将时间(08:30 PM)也记录在内,而我在DataGrid中显示时,只想要其中的日期,不要时间...
所以:
//连接SQL数据库
SqlConnection objcon=new SqlConnection(strcon);
DataSet dset = new DataSet();
SqlDataAdapter apt = new SqlDataAdapter(strsql, objcon);
apt.Fill(dset, "sc");
DataTable tb=dset.Tables["sc"];
DataRow[] objrows=tb.Select();
//使用循环,将每条记录中的日期都改写成 XX年XX月XX日 的格式:
//初学,不知道还有什么更简便的方法能在DataGrid中实现,因为这样写记录多的话会影响速度
int rown=tb.Rows.Count;
for (int ra=0;ra<rown;ra++)
{
string tempd=Convert.ToString(objrows[ra]["ind"]);
tempd=tempd.Substring(0,4)+"年"+tempd.Substring(4,2)+"月"+tempd.Substring(6,2)+"日";
objrows[ra]["ind"]=tempd;
}
DataView dv = new DataView(dset.Tables["sc"]);
myt.DataSource=dv;
myt.DataBind();
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//DataGrid控件的写法:
<asp:DataGrid id="myt" style="Z-INDEX: 101; POSITION: absolute" runat="server" AutoGenerateColumns="False" BorderColor="Honeydew" BorderWidth="1px" BackColor="LightGoldenrodYellow" CellPadding="0" ForeColor="Black">
<AlternatingItemStyle BackColor="PaleGoldenrod" HEIGHT="25px"></AlternatingItemStyle>
<ItemStyle ForeColor="darkBlue" BackColor="#99CCFF" HEIGHT="25px"></ItemStyle>
<HeaderStyle ForeColor="white" BackColor="DodgerBlue" HEIGHT="40px" HorizontalAlign="Center"></HeaderStyle>
<FooterStyle BackColor="Gray"></FooterStyle>
<Columns>
<asp:BoundColumn DataField="ind" HeaderStyle-Width="120px" ReadOnly="True" HeaderText="日 期"></asp:BoundColumn>
<asp:BoundColumn DataField="name" HeaderStyle-Width="50px" ReadOnly="True" HeaderText="班次"></asp:BoundColumn>
<asp:BoundColumn DataField="bz" HeaderStyle-Width="60px" ReadOnly="True" HeaderText="班组"></asp:BoundColumn>
</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="DarkSlateBlue" BackColor="PaleGoldenrod"></PagerStyle>
</asp:DataGrid>