You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中将DataGridView日期值传入RichTextBox如何去除多余时间部分

问题原因

你直接读取dataGridView1.Rows[i].Cells[j].Value取到的是数据库返回的原生DateTime类型值,默认调用ToString()会携带默认的时间部分。你在DataGridView上看到的格式是控件渲染层的格式设置,不会修改底层Value的原始值。

可行解决方案

下面给出3种可直接落地的方案,按需选择即可:

方案1:循环写入时单独格式化日期列(改代码量最小)

直接在循环里判断如果是第一列(索引0),就把值转为DateTime后按你要的格式输出,同时兼容空值场景,修改Form1_Load里的循环逻辑即可:

private void Form1_Load(object sender, EventArgs e)
{
    dataGridView1.DataSource = SelectData();
    // 提前设置日期列的格式,保证DataGridView显示正常
    dataGridView1.Columns[0].DefaultCellStyle.Format = "MM/dd/yyyy";

    richTextBox1.Text = "REPORT \n\n";

    for (int i = 0; i <= dataGridView1.Rows.Count - 1; i++)
    {
        // 跳过空白行(如果DataGridView允许用户新增行的话)
        if (dataGridView1.Rows[i].IsNewRow) continue;
        
        richTextBox1.Text += "-";
        for (int j = 0; j < dataGridView1.Columns.Count; j++)
        {
            string cellText;
            if (j == 0 && dataGridView1.Rows[i].Cells[j].Value != DBNull.Value)
            {
                // 第一列是日期,单独格式化
                DateTime dateVal = Convert.ToDateTime(dataGridView1.Rows[i].Cells[j].Value);
                cellText = dateVal.ToString("MM/dd/yyyy");
            }
            else
            {
                cellText = dataGridView1.Rows[i].Cells[j].Value?.ToString() ?? "";
            }
            richTextBox1.Text += $"\t{cellText}\t";
        }
        richTextBox1.Text += "\n";
    }
}

方案2:直接取DataGridView已经格式化好的显示值

不需要额外判断类型,直接取控件渲染后显示的文本,和你在DataGridView上看到的内容完全一致,把循环里取Value的部分换成FormattedValue即可:

// 替换原代码中的 dataGridView1.Rows[i].Cells[j].Value.ToString()
dataGridView1.Rows[i].Cells[j].FormattedValue.ToString()

方案3:在SQL查询阶段直接返回格式化后的日期字符串

修改SelectData方法里的查询语句,用MySQL内置函数直接把日期转为你要的格式,后续不需要再做任何处理:

SELECT DATE_FORMAT(date, '%m/%d/%Y') as date, name FROM person

这种方案读出来的date字段就是字符串类型,直接ToString就会输出MM/dd/yyyy格式的内容,不会携带时间。

内容的提问来源于stack exchange,提问作者arch1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:36:05