지난 몇 시간 동안 봤지만 그 중 아무 것도 내 사례에 적용 할 수 없으므로 사람들이 도울 수 있기를 바랍니다. 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.SqlClient.SqlException'형식의 예외가 System.Data.dll에서 발생했습니다.
추가 정보 : 문자열에서 날짜 및/또는 시간을 변환하지 못했습니다. "
SQL 서버 관리 2008 SQL 쿼리를 시도 할 때 잘 작동합니다, 그래서이 VS 문제를 생각합니다. 미리 감사드립니다. 나쁜 영어로 죄송합니다
이라고 가정 변경 by DateTimePicker1.Value.ToShortDateString() –
'Bill.Bill_Date'는 데이터베이스의 유효한 datetime 필드입니까, 아니면 문자 유형 필드 (varchar, varchar 등)입니까? null 값을 포함 할 수 있습니까? – David
왜 지나치십니까? DateTime 대신 문자열? –