如何从GridView中删除时间戳

时间:2012-06-26 17:42:14

标签: c# .net visual-studio-2010 gridview oracle11g

我使用Calendar1.SelectedDate.ToShortDateString();的日期选择器填充带有日期的文本框, 之后,我将其存储在Oracle数据库中,其查询如下所示

string query3 = "insert into leave_module1 values(:srno,:name,:desig,:tol,:compdates,:fd,:td,:nod,:da,:ds,st.nextval)";
OracleCommand cmd = new OracleCommand(query3, con);
try
{
    cmd.Parameters.Add(":srno", OracleType.Number, 8).Value = DropDownList2.Text;
    cmd.Parameters.Add(":name", OracleType.VarChar, 50).Value = TextBox8.Text;
    cmd.Parameters.Add(":desig", OracleType.VarChar, 30).Value = TextBox10.Text;
    cmd.Parameters.Add(":tol", OracleType.VarChar, 10).Value = DropDownList1.Text;
    cmd.Parameters.Add(":compdates", OracleType.VarChar, 30).Value = TextBox9.Text;
    cmd.Parameters.Add(":fd", OracleType.DateTime).Value = TextBox3.Text;
    cmd.Parameters.Add(":td", OracleType.DateTime).Value = TextBox4.Text;
    cmd.Parameters.Add(":nod", OracleType.Number, 3).Value = TextBox5.Text;
    cmd.Parameters.Add(":da", OracleType.DateTime).Value = TextBox11.Text;
    cmd.Parameters.Add(":ds", OracleType.DateTime).Value = TextBox7.Text;
    cmd.ExecuteNonQuery();
    ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('The Data has been added');window.location='Default2.aspx';</script>;");
}
catch
{
    Label13.Visible = true;
}

但是当我在另一个页面中使用存储的日期填充GridView时,即使我没有输入一个时间戳,也会得到一个时间戳。请告诉我如何从显示屏上删除时间戳!

提前致谢

这就是我填充gridview的方式

protected void Button3_Click(object sender, EventArgs e)
{
    string v = System.Configuration.ConfigurationManager.ConnectionStrings["harish"].ConnectionString;
    con = new OracleConnection(v);
    con.Open();
    cmd = new OracleCommand("select *  from leave_module1 where srno='"+DropDownList1.Text+"'", con);
    dr = cmd.ExecuteReader();

    GridView1.DataSource = dr;
    GridView1.DataBind();
    con.Close();
    dr.Close();
}

4 个答案:

答案 0 :(得分:2)

因此,您要查询数据库中的所有列,然后自动生成列。这就是显示所有列的原因。要解决此问题

  1. 调整查询以仅返回实际需要的列
  2. 禁用自动生成列并自行定义列。
  3. 很少你想使用自动生成的任何东西,因为你松开了呼叫控制来自定义行为和输出。

答案 1 :(得分:0)

在您的查询或后面的代码中格式化数据(我会在查询中)以删除时间戳并只显示数据。

答案 2 :(得分:0)

您的代码中指定的类型是DateTime,因此无论您是否指定了一个时间组件。如果Oracle有一个Date类型(我不是Oracle的人,但是我在当前项目中与Oracle接口)并且您有权进行更改,那么这是获取您所要求的最简单的方法。 否则,每次使用数据去除时间组件时,都必须指定.ToShortDateString()(或等效的东西)。

答案 3 :(得分:0)

转到GridView的“编辑列”,“字段”对话框将显示。选择要删除时间部分的日期字段,然后在DataFormatString属性中输入{0:d};单击确定。运行应用程序时,gridview列将仅显示日期部分。这对我有用。在过程中转换为Date不起作用,并且RowDataBound()处理程序上的格式化很麻烦。

enter image description here