【问题标题】:Convert Datetime format to Date from sql and bind to Gridview only date将 Datetime 格式从 sql 转换为 Date 并绑定到 Gridview only 日期
【发布时间】:2017-01-23 12:17:23
【问题描述】:
using (con = new SqlConnection(con_str))
{
    con.Open();
    string sql = "select mcfact as Factory, mcarea as Department, mcloc as Location, mcroom as Room, mcline as Line, cast (scanned as date) from tb_MachineRecord where mcidno='" + cmbmcidno.Text + "' ";
    da = new SqlDataAdapter(sql, con);
    DataSet ds = new DataSet();
    da.Fill(ds);
    GridView7.DataSource = ds;
    GridView7.DataBind();
    con.Close();
}

使用此代码,输出与时间类似 03/05/2016 00:00:00 但是当我在 SQL 中运行此查询时,它会显示正确的输出,例如 2016-05-03

【问题讨论】:

  • 您可以更改数据网格中的格式
  • cast (scanned as date) 是您的日期栏吗?

标签: c# sql asp.net sql-server-2008 gridview


【解决方案1】:

如果你使用BoundFields,你可以这样做

<asp:BoundField DataField="myDBdate" DataFormatString="{0:f}" />

有关更多 BoundField DateTime 格式,请参阅Microsoft Site

如果你使用TemplateFields,你可以这样做:

<ItemTemplate><%# Convert.ToDateTime(Eval("myDBdate")).ToShortDateString() %></ItemTemplate>

查看Microsoft Site 了解更多日期时间格式

【讨论】:

    【解决方案2】:

    我认为你应该使用

    select name,CONVERT(VARCHAR(10),date_of_birth,120) from tbl_Login
    

    date_of_birth为日期时间类型列

    【讨论】:

      【解决方案3】:
      using (con = new SqlConnection(con_str))
      {
          con.Open();
          string sql = "select mcfact as Factory, mcarea as Department, mcloc as Location, mcroom as Room, mcline as Line, CONVERT(VARCHAR(10),scanned,120) from tb_MachineRecord where mcidno='" + cmbmcidno.Text + "' ";
          da = new SqlDataAdapter(sql, con);
          DataSet ds = new DataSet();
          da.Fill(ds);
          GridView7.DataSource = ds;
          GridView7.DataBind();
          con.Close();
      }
      

      【讨论】:

        【解决方案4】:

        你可以使用数据表的 dt 对象来代替 ds 例如:

         using (con = new SqlConnection(con_str))
            {
            con.Open();
            string sql = "select mcfact as Factory, mcarea as Department, mcloc as Location, mcroom as Room, mcline as Line, cast (scanned as date) as date from tb_MachineRecord where mcidno='" + cmbmcidno.Text + "' ";
            da = new SqlDataAdapter(sql, con);
            Datatable dt=new datatable();
            da.Fill(dt);
        
           foreach(DataRow rows in dt.rows.Count)
           {
              rows["date"]=Convert.ToDateTime(rows["date"].toString()).toString("dd/MM/yyyy"));
           }
            GridView7.DataSource = dt;
            GridView7.DataBind();
            con.Close();
           }
        

        【讨论】:

          猜你喜欢
          • 2022-11-05
          • 1970-01-01
          • 1970-01-01
          • 2023-04-11
          • 2016-07-06
          • 1970-01-01
          • 2013-05-14
          • 1970-01-01
          • 2012-05-06
          相关资源
          最近更新 更多