簡體   English   中英

無法將文本框(dd / MM / yyyy)日期轉換為日期時間格式

[英]Unable to convert textbox(dd/MM/yyyy) date to datetime format

我有一個數據庫日期“ 2014-11-26”。 我有一個格式為(dd-MM-yyyy)的壓延機,我正在嘗試按文本框選定日期從數據庫中將一些值帶入表單

  protected void txtdate_TextChanged(object sender, EventArgs e)
    {

        //DateTime timeIn = Convert.ToDateTime(txtdate.Text);
       // DateTime time1 = DateTime.ParseExact(txtdate.Text, "yyyy-MM-dd", CultureInfo.InvariantCulture);
        str = "select TimeIn,TimeOut from MusterRoll where EmpCode='" + ddcode.SelectedItem.Text + "' and Date='"+time1+"'";
        dr = conn.query(str);
        if (dr.Read())
        {
            DateTime time = dr.GetDateTime(0);
            TimeSelector1.SetTime(time.Hour, time.Minute, TimeSelector1.AmPm);
            DateTime time2 = dr.GetDateTime(1);
            TimeSelector2.SetTime(time2.Hour, time2.Minute, TimeSelector2.AmPm);
        }

    }

問題是數據庫日期格式和我的日歷格式不同。 我嘗試了兩種方法(放在命令行中),但顯示錯誤消息,例如"input string was not in correct format" 我上網沖浪,找到了同樣的答案。 我可以知道為什么顯示錯誤嗎? 我正在嘗試使數據庫日期格式和日歷格式相同

首先, DateTime沒有任何隱式格式。 它只有日期和時間值。 它們的String表示形式可以具有格式。

我強烈懷疑您用它們的字符串表示形式保存了DateTime值,這是一個可怕的想法。 閱讀: 不良習慣:選擇錯誤的數據類型DateTime值直接傳遞給參數化查詢而不是字符串表示形式。 無論如何..

對於;

DateTime timeIn = Convert.ToDateTime(txtdate.Text); 

Convert.ToDateTime(string)方法將DateTime.Parse方法與CurrentCulture設置一起使用。 這意味着,如果您的字符串不是CurrentCulture的標准日期和時間格式,則代碼將引發FormatException 我猜dd-MM-yyyy不是您CurrentCulture的標准日期和時間格式。

對於;

DateTime time1 = DateTime.ParseExact(txtdate.Text, "yyyy-MM-dd", CultureInfo.InvariantCulture);

當您使用DateTime.ParseExact ,您的字符串和格式應完全匹配。

將指定的日期和時間的字符串表示形式轉換為其等效的DateTime。 字符串表示形式的格式必須與指定的格式完全匹配,否則將引發異常

就你而言 他們不是( "26-11-2014""yyyy-MM-dd" )。 請改用dd-MM-yyyy格式。

DateTime time1 = DateTime.ParseExact(txtdate.Text,
                                     "dd-MM-yyyy",
                                     CultureInfo.InvariantCulture);

然后,您可以從time1生成格式,例如;

time1.ToString("yyyy-MM-dd"); // A string formatted as 2014-11-26

對於命令部分,應始終使用參數化查詢 這類字符串連接對SQL注入攻擊開放。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM