2015-07-06 70 views
0

我想生成一個Excel,我可以得到Excel,但一些數據(實際上是一個單元格內容)丟失。例如:在SQL Server查詢(應該在一個單元格顯示在Excel中像這樣的建議列):從SQL服務器生成CSV文件並檢索數據

建議 類型:恭維類別:醫生姓名:嘿

然而,在我的Excel中,下欄目建議,它只顯示我 - 類型:讚美,然後類別:醫生姓名:嘿失蹤。 也許我的foreach是錯誤的或我錯誤地檢索數據的方式。

private DataTable GetData(SqlCommand cmd) 
    { 
     DataTable dt = new DataTable(); 
     String strConnString = System.Configuration.ConfigurationManager.ConnectionStrings["DBConnStr"].ConnectionString; 
     SqlConnection con = new SqlConnection(strConnString); 
     SqlDataAdapter sda = new SqlDataAdapter(); 
     cmd.CommandType = CommandType.Text; 
     cmd.Connection = con; 
     try 
     { 
      con.Open(); 
      sda.SelectCommand = cmd; 
      sda.Fill(dt); 
      return dt; 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
     finally 
     { 
      con.Close(); 
      sda.Dispose(); 
      con.Dispose(); 
     } 
    } 

    protected void GenerateCSV_Click(object sender, EventArgs e) 
    { 

     //First file Inpatient 
     StringBuilder sb = new StringBuilder(); 
     //fill up DT here 
     string strQuery ="Select * from table AND Date BETWEEN @FDT AND @TDT" 
     SqlCommand cmd = new SqlCommand(strQuery); 


     string fromdate = tbStartDate.Text; 
     DateTime fdt = Convert.ToDateTime(fromdate); 

     string todate = tbEndDate.Text; 
     DateTime tdt = Convert.ToDateTime(todate); 


     cmd.Parameters.AddWithValue("@FDT", fdt); 
     cmd.Parameters.AddWithValue("@TDT", tdt); 

     DataTable dt = GetData(cmd); 
     //end 

     for (int k = 0; k < dt.Columns.Count; k++) 
     { 
      //add separator 
      sb.Append(dt.Columns[k].ColumnName + ','); 
     } 
     //append new line 
     sb.Append("\r\n"); 
     for (int i = 0; i < dt.Rows.Count; i++) 
     { 
      for (int k = 0; k < dt.Columns.Count; k++) 
      { 
       if (dt.Columns[k].ColumnName.Equals("CommentsSuggestions")) 
       { 
        //add separator 
        sb.Append("\"" + dt.Rows[i][k].ToString().Replace(",", ";") + "\"" + ','); 
       } 
       else 
       { 
        //add separator 
        sb.Append(dt.Rows[i][k].ToString().Replace(",", ";") + ','); 
       } 
      } 
      //append new line 
      sb.Append("\r\n"); 
     } 

     File.WriteAllText(@"C:\ExportCSV\Inpatient.csv", sb.ToString()); 

回答

0

應該不是你的查詢是

Select * from table WHERE Date BETWEEN @FDT AND @TDT 

Select * from table AND Date BETWEEN @FDT AND @TDT 
+0

對不起,我沒有完全寫,其SELECT * FROM ....那裏某物= ......而日之間的「@ FDT'和'@TDT' –