gpt4 book ai didi

c# - 错误的日期格式 C#、Oracle

转载 作者:太空宇宙 更新时间:2023-11-03 19:17:57 25 4
gpt4 key购买 nike

我正在尝试以正确的格式 (dd/mm/yyyy) 获取我的日期。目前它的格式是:MM-DD-YYYY HH24:MI:SS 当我将它更改为 dd/mm/yyyy 时,它在数据库 (Oracle) 中工作。一旦我在我的应用程序中运行它,我就会得到异常:IndexOutOfRange at :

this.InfoList9.Add(dr["start_rcv_datetime"].ToString());

请看下面我的代码。

public List<String> InfoList = new List<String>();

private void populatelblDate()
{
conn.Open();
string query;
query = "select to_char(dg.start_rcv_datetime,'dd/mm/yyyy') from dc_pallet dp, dc_pallet_stock dps , dc_grv dg , sku s ,prod_size ps,colour c ,purch_order_carton_sku pocs , dc_crane_instruc dci where dps.pallet_id_no = '" + palletId.ToString() + "' and dp.pallet_id_no = dps.pallet_id_no and dg.dc_grv_id_no = dps.dc_grv_id_no and dg.order_no = dps.order_no and dg.company_id_no = dps.company_id_no and s.company_id_no = dps.company_id_no and s.company_id_no = dg.company_id_no and dps.company_id_no = c.company_id_no and dps.company_id_no = ps.company_id_no and s.prod_size_id_no = ps.prod_size_id_no and s.colour_id_no = c.colour_id_no and dps.company_id_no = ps.company_id_no and pocs.order_no = dps.order_no and pocs.carton_code = dps.carton_code and pocs.company_id_no = dps.company_id_no and pocs.sku_id_no = s.sku_id_no and dci.pallet_id_no(+) = dp.pallet_id_no";

OracleCommand cmd = new OracleCommand(query, conn);
OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
this.InfoList.Add(dr["start_rcv_datetime"].ToString());
}
dr.Close();
conn.Close();
}

private void frmInfo_Load(object sender, EventArgs e)
{
populatelblDate();
lbl1.Text = this.InfoList[0];
}

然后我还有一个上一个和下一个按钮...

最佳答案

您的 IndexOutOfRange 异常表明直接问题是结果集不包含 start_rcv_datetime 列 - 大概是因为to_char 转换。

根本不要在数据库端处理字符串。获取作为 DateTime 的值,然后在客户端 将其格式化为任何您想要的格式。

使用 dr.GetDateTime 获取值,从查询中删除 to_char 部分:

query = "select dg.start_rcv_datetime from ...";

using (OracleCommand cmd = new OracleCommand(query, conn))
{
using (OracleDataReader dr = cmd.ExecuteReader())
{
int dateColumn = dr.GetOrdinal("start_rcv_datetime");
while (dr.Read())
{
DateTime date = dr.GetDateTime(0);
// Or whatever - consider cultural implications
string text = date.ToString("dd/MM/yyyy");
InfoList.Add(text);
}
}
}

(注意 using 语句 - 您应该始终确保清理与数据库相关的资源。)

关于c# - 错误的日期格式 C#、Oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14808327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com