私は過去数時間のGoogle検索を行っていますが、それらの質問は私のケースには適用できません。 私はDateTimePickerから日付を選ぶことができるレポートアプリケーションを持っていて、最も大きな量の値を持つアイテムが表示されます。レポートビューアコントロールを使用して情報を表示します。ここでC#文字列から日付や時刻を変換したときに変換に失敗しました
は、私のテーブルアダプタでの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.dllで 'System.Data.SqlClient.SqlException'型の未処理例外が発生しました
追加情報:文字列から日付および/または時刻を変換するときに変換に失敗しました。
私はSQLサーバ管理2008でSQLクエリを試してみるとうまくいきますので、これはVSの問題だと思います。 ありがとうございました。 悪いが残念です。
であると仮定すると変更by DateTimePicker1.Value.ToShortDateString() –
'Bill.Bill_Date'はデータベース内の有効な日時フィールドですか、それとも文字型フィールドですか(varchar、varcharなど)?null値を含むことができますか? – David
なぜあなたは渡していますかDateTimeではなく文字列? –