簡體   English   中英

問題:從字符串轉換日期和/或時間時轉換失敗

[英]Problem: Conversion failed when converting date and/or time from character string

我想根據當月獲取購買總額,但是在我的 SQL 服務器數據庫中,我將日期字段設置為寫入 nvarchar(50)。 執行代碼時,出現錯誤:

從字符串轉換日期和/或時間時轉換失敗。

有沒有辦法更改代碼以使其接受 nvarchar(50) 字段類型,但我不想將其從數據庫更改為日期類型,我希望它適用於 nvarchar(50) 類型。

代碼:

int month = Convert.ToInt32(DateTime.Now.Month.ToString());
DataTable tblItems_40 = new DataTable();
tblItems_40 = db8.readData("SELECT  SUM(Total) FROM Buy_Detalis WHERE MONTH(Date) 
         ='" + month + "' ", "");
tblItems8 = db8.readData("SELECT * From Buy_Detalis WHERE Date ='" + 
         month.ToString() + "'", "");
if (tblItems8.Rows.Count <= 0)
{
    labelControl6.Text = "0.ج.م";
}
else if (tblItems8.Rows.Count >= 1)
{
    labelControl6.Text = (tblItems_40.Rows[0][0].ToString)();
    labelControl6.Text = Decimal.Parse(labelControl6.Text).ToString("C");
}

我想出了這個解決方案並想與您分享它對我來說非常有用

DataTable tblItems_40 = new DataTable();
        string d5 = DateTime.Now.Month.ToString();
        string d6 = DateTime.Now.Year.ToString();
        tblItems_40 = db4.readData("SELECT YEAR(CONVERT(date,[Buy_Detalis].[Date], 103)) as SalesYear,MONTH(CONVERT(date,[Buy_Detalis].[Date], 103)) as SalesMonth,sum(Buy_Detalis.Total) AS TotalSales FROM Buy_Detalis where YEAR(CONVERT(date,[Buy_Detalis].[Date], 103)) ='" + d6 + "' AND MONTH(CONVERT(date,[Buy_Detalis].[Date], 103)) ='" + d5+ "'  GROUP BY YEAR(CONVERT(date,[Buy_Detalis].[Date], 103)), MONTH(CONVERT(date,[Buy_Detalis].[Date], 103))  ", "");
        tblItems8 = db4.readData("SELECT sum(Buy_Detalis.Total) AS TotalSales FROM Buy_Detalis GROUP BY YEAR(CONVERT(date,[Buy_Detalis].[Date], 103)), MONTH(CONVERT(date,[Buy_Detalis].[Date], 103)) ORDER BY YEAR(CONVERT(date,[Buy_Detalis].[Date], 103)), MONTH(CONVERT(date,[Buy_Detalis].[Date], 103))", "");
        if (tblItems8.Rows.Count <= 0)
        {
            labelControl6.Text = "0.ج.م";
        }
        if (tblItems8.Rows.Count >= 1)
        {
            labelControl6.Text = (tblItems_40.Rows[0][2].ToString)();
            labelControl6.Text = Decimal.Parse(labelControl6.Text).ToString("C");
        }

暫無
暫無

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

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