2012-11-22 2 views
1

저는 C#을 처음 사용하고 있으며 다른 프로그램에서 내 보낸 C# 프로그램과 Excel 파일이 있습니다. 어떻게 그것을 DateTime으로 변환 할 수 있습니까?변환 C#을 사용하여 데이터를 datetime으로 변환 #

System.Data.DataTable dtExcel = new System.Data.DataTable(); 
dtExcel.TableName = "MyExcelData"; 
string SourceConstr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" +  this.textBox1.Text + "';Extended Properties= 'Excel 8.0;HDR=Yes;IMEX=1'"; 
OleDbConnection con = new OleDbConnection(SourceConstr); 
string query = "Select Customer, SUM(Wt) AS Weight from [Sheet0$] WHERE (CONVERT(datetime, [Date]) >= " + this.dtFrom.Value.Month + ") GROUP BY Customer order by Customer"; 
OleDbDataAdapter data = new OleDbDataAdapter(query, con); 
data.Fill(dtExcel); 
+0

문제가 * 쿼리 * (값을 문자열로 변환하는 대신 매개 변수화 된 SQL을 사용해야하는 경우)에 있는지 또는 나중에 데이터를 가져 오는 데 있는지 명확하지 않습니다. –

+0

당신의 쿼리에 또 다른 문제가 있습니다 :'CONVERT'는 (당신의 경우)'DATETIME' 값을 반환하고 그 값을'int' 인'dtFrom.Value.Month'와 비교합니다. – RePierre

답변

0

나는 아마 유일한 문제가되지 않습니다 생각하지만, 당신이

string query = "Select Customer, SUM(Wt) AS Weight from [Sheet0$] WHERE (CONVERT(datetime, [Date]) >= @Date) GROUP BY Customer order by Customer"; 
OleDbCommand command = new OleDbCommand(query); 
command.Parameters.Add("@Date", OleDbType.DBTimeStamp).Value = this.dtFrom.Value; 
OleDbDataAdapter data = new OleDbDataAdapter(command, con); 

string query = "Select Customer, SUM(Wt) AS Weight from [Sheet0$] WHERE (CONVERT(datetime, [Date]) >= " + this.dtFrom.Value.Month + ") GROUP BY Customer order by Customer"; 
OleDbDataAdapter data = new OleDbDataAdapter(query, con); 

을 교체하는 경우, 귀하의 질문에 대답 : 다음은 dtFromdtToDateTimePicker 변수는 코드입니다

아마 옳은 길에있을 것입니다. 정확히 OleDbType이 100 % 확실한 것은 아니지만 사용 가능한 옵션을 충분히 쉽게 볼 수 있습니다.

관련 문제