2012-07-23 141 views
0

我對此腳本有問題。每當我將這組代碼導出到文本文件時,我都希望根據我選擇的日期和時間打印它,但它會顯示「Sales-23-07-2012」。導出數據日期和時間點到當前日期和時間

例如,我想將文本文件是爲「銷售 - (我選的日期)」而不是「銷售-23-07-2012」請幫助。

namespace MedicalDataExporter 

{ 

    public partial class frmSales : Form 
    { 
     public frmSales() 
     { 
      InitializeComponent(); 
     } 

    private void dtpFrom_ValueChanged(object sender, EventArgs e) 
    { 

    } 

    private void btnExtract_Click(object sender, EventArgs e) 
    { 

     SqlConnection objConn = new SqlConnection("Data Source=AKC-105DR-CMS01\\GLOCO;Initial Catalog=Medprac;Persist Security Info=True;User ID=sa;Password=""); 

     objConn.Open(); 

     SqlCommand objCmd = new SqlCommand("SELECT CONVERT(char(80), InvDate,3) AS InvDate,InvoiceNo,EmployerCode,TaxAmount + SubTotal AS Amount,'' AS Payment FROM Invoice WHERE (InvDate >= CONVERT(datetime, '"+dtpFrom.Text +"', 105)) AND (InvDate <= CONVERT(datetime, '"+dtpTo.Text+"', 105))", objConn); 

     SqlDataReader objReader; 
     objReader = objCmd.ExecuteReader(); 

     System.IO.FileStream fs = new System.IO.FileStream("C:\\CMSExportedData\\Sales-" + DateTime.Now.ToString("dd-MM-yyyy") + ".txt", System.IO.FileMode.Create); 
     System.IO.StreamWriter sw = new System.IO.StreamWriter(fs, System.Text.Encoding.Default); 

     int count = 0; 
     while (objReader.Read()) 
     { 

      for (int i = 0; i < 5; i++) 
      { 
       if (!objReader.IsDBNull(i)) 
       { 
        string s; 
        s = objReader.GetDataTypeName(i); 
        //MessageBox.Show(s); 
        if (objReader.GetDataTypeName(i) == "char") 
        { 
         sw.Write(objReader.GetString(i)); 
        } 
        else if (objReader.GetDataTypeName(i) == "money") 

        { 
         sw.Write(objReader.GetSqlMoney(i).ToString()); 
        } 
        else if (objReader.GetDataTypeName(i) == "nvarchar") 
        { 
         sw.Write(objReader.GetString(i)); 
        } 
       } 
       if (i < 4) 
       { 
        sw.Write("\t"); 
       } 

      } 
      count = count + 1; 
      sw.WriteLine(); 

     } 
     sw.Flush(); 
     fs.Close(); 
     objReader.Close(); 
     objConn.Close(); 
     MessageBox.Show(count + " records exported successfully."); 
     this.Close(); 
    } 

    private void groupBox1_Enter(object sender, EventArgs e) 
    { 

    } 

    private void dtpTo_ValueChanged(object sender, EventArgs e) 
    { 

    } 

    private void frmSales_Load(object sender, EventArgs e) 
    { 

    } 
} 

}

+0

嗯,你是哪裏人 「中選擇」 您的日期值?既然這樣,你_explicitly_告訴文件名包括'DateTime.Now':'System.IO.FileStream FS =新System.IO.FileStream( 「C:\\ \\ CMSExportedData銷售 - 」 + DateTime.Now。的ToString(「DD-MM-YYYY」)+「.TXT」,System.IO.FileMode.Create);' – David 2012-07-23 01:35:24

+0

哦,我明白你的意思了,有沒有辦法選擇的日期和時間,類別先生打印? – Newbie 2012-07-23 01:37:57

+0

我不確定你是否明白我的意思......哪裏有選定的日期和時間?這個價值是如何「被選擇」的? – David 2012-07-23 01:38:49

回答

1

你真的只是張貼與管理員密碼一個完整的連接字符串?

不管怎樣,更換DateTime.Now.ToString("dd-MM-yyyy")

myDateControlOnTheForm.Text 
+0

當我改變了它表明我這個錯誤「名稱‘myDateControlOnTheForm – Newbie 2012-07-23 01:53:41

+0

@Newbie’在目前情況下不存在」:這讓我們回到原來的問題,這是你首先得到這個價值的地方。回答者在這裏假設你對用於輸入日期的表單有一定的控制。如果你在答案中沒有看到,那麼這聽起來像是這個問題有點誤導。你沒有那麼問:「我如何使用特定的日期?」而應該問「如何收集用戶的輸入?」這是一個非常不同的問題,也許可以通過從某個教程中學習一些基本的C#應用​​程序開發來得到最好的回答。 – David 2012-07-23 01:55:59

+0

這組代碼用於從SQL數據庫中獲取值。因此,用戶點擊日曆並選擇日期並將所選日期打印爲文本文件的標題。 是的,我會去和做一些閱讀刷上C# – Newbie 2012-07-23 02:01:36