【问题标题】:DateTime format possible to implement on reader.read?可以在 reader.read 上实现 DateTime 格式吗?
【发布时间】:2016-09-22 03:01:49
【问题描述】:

我对 c# 和 visual studios 2015 非常陌生,所以我很乐意接受任何意见(即使是不好的意见)。

有没有办法使用 reader.read 直接将 DateTime 提取为“ddd”格式,例如:

textBox1.Text = Convert.ToDateTime(reader[1].ToString()).ToShortDateString();

我对字符串的 DateTime 有非常基本的了解,但不确定它是否可以放在 reader.read 中。

我的数据表内容是这样的:

我的 textBox1 显示了这个:

试图使该文本框显示“星期四”而不是我下面代码中的日期:

if (btnSearch.Text == "Search")
        {                
            string sqlStmt = @"SELECT * FROM dbo.tbl_employees WHERE emp_id = @emp_id;";


            using (SqlConnection dbCon = new SqlConnection(conStr))
            {

                SqlCommand dbCmd = new SqlCommand(sqlStmt, dbCon);
                dbCmd.Parameters.AddWithValue("@emp_id", txtSearchID.Text);

                dbCon.Open();

                SqlDataReader reader = dbCmd.ExecuteReader();

                while (reader.Read())
                {                       
                    textBox1.Text = Convert.ToDateTime(reader[1].ToString()).ToShortDateString();
                }

                reader.Close();
                dbCon.Close();
            }
        }

Sql:

[day_received]                       Date   NOT NULL,

谢谢。

【问题讨论】:

  • 好吧,我的标题问题有误......标题应该是可以在 reader.read 上实现的 DateTime 格式......
  • 所以edit您的问题并更正标题。 :-)
  • @KenWhite 谢谢肯。也是stackoverflow的新手。 :)
  • 什么是“阅读器”?以下是解析 DateTime 数据的一些通用指南:msdn.microsoft.com/en-us/library/…
  • 你的sql查询中字段的数据类型是什么?你是从 mysql 返回一个真正的日期时间,还是一个日期时间的 varchar 表示? (请注意,前者几乎总是更好的选择)。

标签: c# sql visual-studio-2015


【解决方案1】:

假设您的 reader 对象的类型为 MySqlDataReader,则对以下内容进行修改应该可以:

using(var reader = cmd.ExecuteReader()){
    if(reader.Read())
        textBox1.Text = reader.GetDateTime(fieldIndex)
                              .ToShortDateString();
}

【讨论】:

  • 现在让我绞尽脑汁,让它显示日期时间格式“ddd”。谢谢!
【解决方案2】:
using(var reader = cmd.ExecuteReader())
{
  if(reader.Read())
  {
    /// Considering GetDateTime returns a DateTime object...
    DateTime dtTemp = reader.GetDateTime(fieldIndex);
    textBox1.Text = dtTemp.toString("dddd");
  }
}

这是你要找的吗?

【讨论】:

  • 非常感谢!我想在外面做,因为我不确定这是否可能。 100% 工作。 :)
  • 这几乎是 40 分钟前发布的答案的直接副本。最大的区别在于代码的格式。
  • @JoelCoehoorn - 我不这么认为......他特别寻找的是转换为早期帖子中没有的 dddd 格式......
猜你喜欢
  • 2020-03-14
  • 2011-08-10
  • 2011-08-10
  • 2020-10-27
  • 1970-01-01
  • 2015-06-27
  • 1970-01-01
  • 1970-01-01
  • 2020-11-18
相关资源
最近更新 更多