2017-08-16 94 views
0

我已經創建了一個編程的文本文件,並將其保存到一個文件夾中,現在我需要將它保存到數據庫(我已經創建了表格)中的一個表中,之後用這些文本文件填充複選框並將它們發送到FTP服務器。 這可能嗎?如果是的話,我該如何開始做/我該怎麼做? 下面是創建文本文件和創建表的代碼的代碼。如果您對代碼有任何疑問,請隨時提問。將文本文件保存到SQL並將其發送到FTP服務器

var numfatura = _transaction.TransDocument + _transaction.TransSerial + _transaction.TransDocNumber; 

     using (StreamWriter writer = new StreamWriter("C:\\Users\\HP8200\\Desktop\\Faturas Teste\\" +numfatura + ".txt")) 
     { 
      string numcont = _transaction.PartyFederalTaxID; 
      double numenc = _transaction.BillToPartyID; 
      DateTime data = _transaction.CreateDate; 
      double valor = _transaction.TotalAmount; 
      int zona = transaction.UnloadPlaceAddress.AddressID; 
      string zona2 = transaction.UnloadPlaceAddress.AddressLine2; 
      double quantidade = transaction.Details.Count; 
      string bonus = "0"; 
      string valorStr = valor.ToString(CultureInfo.InvariantCulture); 

      writer.WriteLine($"{numcont};{numenc};{numfatura};{data:dd/MM/yyyy};{valorStr};{zona};"); 
      foreach (ItemTransactionDetail detail in transaction.Details) 
      { 
       var item = MyApp.DSOCache.ItemProvider.GetItem(detail.ItemID, MyApp.SystemSettings.BaseCurrency); 
       double taxRate = MyApp.DSOCache.TaxesProvider.GetTaxRateFromTaxableGroupID(detail.TaxableGroupID, "PRT", "CON"); 
       string barcode = item.BarCode; 
       var preconet = detail.TaxIncludedPrice; 
       var precoantesdisc = detail.UnitPrice; 
       string preconetStr = preconet.ToString(CultureInfo.InvariantCulture); 
       string precoantesdiscStr = precoantesdisc.ToString(CultureInfo.InvariantCulture); 
       writer.WriteLine($"{barcode};{taxRate};{precoantesdiscStr};{preconetStr};{quantidade};{bonus}"); 
      } 

     } // create the text file 
SqlConnection conn = new SqlConnection(@"Data source = 2c4138928627\Sage ; Database=ARMINDOData ; User Id=sa ; Password=sage2008+"); 
     SqlCommand command = new SqlCommand("IF OBJECT_ID('UXFaturas', 'U') IS NULL CREATE TABLE UXFaturas(Faturas char(250));", conn); 
     conn.Open(); 
     SqlCommand insertCommand = new SqlCommand("INSERT INTO UXFaturas(Faturas) VALUES (*.txt)", conn); 
     command.ExecuteNonQuery(); 

     MessageBox.Show("saved"); // create the table and insert the textfile 
+0

我看不出SQL,複選框和FTP問題部分是如何相互關聯的。請一次只提一個問題!這不是一個代碼寫入服務。 –

+0

好的,對不起。首先,我需要將文本文件保存到SQL中。然後用保存在SQL上的數據填充checbox,然後將選中的文件發送到FTP服務器。 –

+0

您可以編寫一個存儲過程,將您的文件名和內容存入其中,並將其保存到表中。 –

回答

0

創建一個存儲過程,它接受兩個參數文件名fileContent,然後存儲在您的UXFaturas表內。

CREATE PROC USP_InsertFile(@fileName nvarchar(200),@fileContent nvarchar(max)) 
AS 
BEGIN 
    INSERT INTO UXFaturas VALUES(@fileName,@fileContent) 
END 

我在這裏假設你UXFaturas表只有兩列。

現在,您可以簡單地從您的C#ADO代碼中調用此存儲過程並傳遞正確的參數。

using (SqlConnection conn = new SqlConnection(@"Data source = 2c4138928627\Sage ; Database=ARMINDOData ; User Id=sa ; Password=sage2008+")) 
      { 
       SqlCommand command = new SqlCommand(); 
       command.Connection = conn; 

       command.CommandType = System.Data.CommandType.StoredProcedure; 
       command.CommandText = "USP_InsertFile"; 

       command.Parameters.AddWithValue("@fileName",fileName); 
       command.Parameters.AddWithValue("@fileContent",fileContent); 

       command.ExecuteNonQuery(); 
      } 
+0

我會嘗試,很快我會給你反饋。謝謝 –

+0

我應該爲其名稱和內容替換'@ filename'和'@ filecontent'嗎? –

+0

是....將兩個參數替換爲名稱和內容。 –

相關問題