2013-04-26 36 views
0

我開發了一個與.net Framework 3.5兼容的應用程序,以便在其他應用程序中運行它的構建。字符串未被識別爲有效的日期TIme在桌面應用程序中的錯誤

構建的應用程序的O. S.是Windows 7的

當我在Windows XP中運行構建了下面的代碼發生this錯誤:

dtBillDate.Text = ds.Tables[0].Rows[0]["Dt"].ToString(); 

這裏dtBillDate是DateTimePickerControl。

和SQL查詢來填補ds記錄是:

query = "Select M.BillNo,M.PartyName,M.Address,M.City,M.State,M.TaxType, 
M.BillType,FORMAT(M.BillDt,'dd-mm-yyyy')as Dt, 
M.CST,M.GST,M.TransportName,M.TruckNo,M.Through,M.Tax,M.AddTax,M.Charges from BillMaster M where M.BillNo=" + billNo; 

記錄都存儲在Access 2007數據庫。

我應該做些什麼改變來解決這個錯誤。

請幫忙。提前致謝。

回答

0

您在您的查詢

FORMAT(M.BillDt,'dd-mm-yyyy')as Dt 

在您的格式mm應該MM格式化你的日期,因爲你可能需要一個月,而不是幾分鐘

您應該使用DateTime.ParseExact與格式dd-MM-yyyy解析日期。儘管如果讓您的查詢返回沒有格式化的DateTime,並讓.Net應用程序格式化您的日期以顯示,它會更好。

您需要設置DateTimePicker控制值才能顯示日期。您可以使用DateTime.ParseExact解析,如:

dtBillDate.Value = DateTime.ParseExact(ds.Tables[0].Rows[0]["Dt"].ToString(), 
             "dd-MM-yyyy", 
             CultureInfo.InvariantCulture); 
+0

感謝您的回答先生,我試過你的建議的代碼,但它仍然給出了同樣的錯誤。 @Habib – 2013-04-26 07:25:36

+0

@確切的錯誤是什麼?是編譯時間? – Habib 2013-04-26 07:27:40

+0

對不起,它不會在編譯時發生錯誤。並且錯誤是[this](http://i.imgur.com/8ibzcLQ.png)@Habib – 2013-04-26 07:31:24

0

試試這個:

DateTime dateTime; 
string dateString = ds.Tables[0].Rows[0]["Dt"].ToString(); 
bool result = DateTime.TryParse(dateString , out dateTime); 

if(result) 
{ 
    // Use `dateTime` variable then 
} 
0

基本上在Win 7中的「印度英語」的格式是可用的,其中日期分隔符爲「 - 」。但在Win XP的「英文印度」格式不可用,所以你可能使用「英文美國或英國」格式的日期使用「/」作爲日期分隔符。

TO解決您的問題,您需要做的就是通過轉到>控制面板>區域和語言選項>點擊「自定義」>打開日期分隔符格式爲「 - 」 「Tab和這裏將DATE SEPARATOR設置爲」 - 「。 而你的應用程序將工作沒有任何錯誤。快樂現在:D

相關問題