从字符串转换日期和/或时间时,c#转换失败
本文关键字:转换 时间 失败 字符串 日期 | 更新日期: 2023-09-27 18:16:48
我在谷歌上搜索了几个小时,这些问题都不适用于我的情况,所以希望你们能帮助我。我有一个报告应用程序,用户可以从DateTimePicker中选择一个日期,并显示具有最大数量值的项目。我使用报表查看器控件来显示信息。
下面是我的表适配器中的SQL查询:SELECT TOP (1)
Drink_Name,
SUM(Quantity) AS NoDrink,
Bill_No,
Staff_No,
Bill_Date,
Bill_Value,
Customer_No,
Unit_Price,
Quantity
FROM
(SELECT
Bill.Bill_No,
Bill.Staff_No,
Bill.Bill_Date,
Bill.Bill_Value,
Bill.Customer_No,
Bill_Detail.Drink_Name,
Bill_Detail.Bill_No AS Expr1,
Bill_Detail.Unit_Price,
Bill_Detail.Quantity
FROM
Bill INNER JOIN
Bill_Detail ON Bill.Bill_No = Bill_Detail.Bill_No
WHERE
(Bill.Bill_Date = @Bill_Date)
) AS Temp
GROUP BY Drink_Name,
Bill_No,
Staff_No,
Bill_Date,
Bill_Value,
Customer_No,
Unit_Price,
Quantity
ORDER BY NoDrink DESC
下面是生成和加载数据到报表数据集的代码
CoffeeShopDataSetTableAdapters.DataTable1TableAdapter adapter =
new CoffeeShopDataSetTableAdapters.DataTable1TableAdapter();
CoffeeShopDataSet.DataTable1DataTable table =
new CoffeeShopDataSet.DataTable1DataTable();
adapter.FillByMax(table, dateTimePicker1.Value.ToShortDateString());
ReportDataSource maxdatasource =
new ReportDataSource("DataSet1form3", (DataTable)table);
this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.DataSources.Add(maxdatasource);
this.reportViewer1.LocalReport.Refresh();
this.reportViewer1.RefreshReport();
问题是我总是得到这个错误:
"类型为'System.Data.SqlClient. sql '的未处理异常。SqlException' occurred in System.Data.dll
附加信息:从字符串转换日期和/或时间时,转换失败。"
当我尝试SQL查询与SQL服务器管理2008,它工作得很好,所以我认为这是VS问题。提前感谢大家。不好意思,英文不好
我将明确表示您的日期,这样就不会在日期和时间格式之间产生混淆。
1)更改将日期转换为具有显式格式的字符串的行
dateTimePicker1.Value.ToString("yyyyMMdd");
2)修改SQL(假设Bill。Bill_Date列是一个日期
(Bill.Bill_Date = CONVERT(DATE, @Bill_Date, 112)