2017-08-10 87 views
-3

我在Visual Studio 2017中创建一个项目,我需要填写一个复选框,用我以前创建的文本文件的名称创建并发送到FTP服务器。 这可能吗? 下面是我的一些代码,随意问更多的代码:连接一个窗体与控制台

创建文件,并将其保存:

using (StreamWriter writer = new StreamWriter("C:\\Users\\HP8200\\Desktop\\Faturas Teste\\Fatura " + _transaction.TransDocNumber + ".txt")) 
{ 
    string numcont = _transaction.PartyFederalTaxID; 
    double numenc = _transaction.BillToPartyID; 
    double numfatura = _transaction.TransDocNumber; 
    DateTime data = _transaction.CreateDate; 
    double valor = _transaction.TotalAmount; 
    int zona = transaction.UnloadPlaceAddress.AddressID; 
    string zona2 = transaction.UnloadPlaceAddress.AddressLine2; 
    double precoantesdisc = bsoItemTrans.BSOItemTransactionDetail.TransactionDetail.PackUnitPrice; 
    double preconet = transaction.TotalTransactionAmount; 
    double quantidade = transaction.Details.Count; 
    string bonus = "0"; 
    string valorStr = valor.ToString(CultureInfo.InvariantCulture); 
    string preconetStr = preconet.ToString(CultureInfo.InvariantCulture); 
    string precoantesdiscStr = precoantesdisc.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; 
     writer.WriteLine($"{barcode};{taxRate};{precoantesdiscStr};{preconetStr};{quantidade};{bonus}"); 
    } 

} 

SqlConnection conn = new SqlConnection(@"Data source = 2c4138928627\Sage ; Database=ARMINDOData ; User Id=sa ; Password=sage2008+"); 
SqlCommand command = new SqlCommand("IF OBJECT_ID('UXZona', 'U') IS NULL CREATE TABLE UXZona(IDZona int,Morada char(50));", conn); 
conn.Open(); 
SqlCommand insertCommand = new SqlCommand("INSERT INTO UXZona(FirstColumn, SecondColumn) VALUES (@0, @1)", conn); 
command.ExecuteNonQuery(); 

SqlCommand con = new SqlCommand("IF OBJECT_ID('UXZona', 'U') IS NULL CREATE TABLE UXZona(IDZona int,Morada char(50));", conn); 

MessageBox.Show("gravou"); 

表单代码:

在窗体上我只是一个空的清单和一个提交按钮。

UPDATE

新增2截图更具体

在这里,我,我跟上面的代码

enter image description here

创建文本文件,我需要把名字在这个清单中的文件,然后当我按下提交按钮时,它将文本文件发送到我拥有的FTP服务器。

enter image description here

更新2: 添加一些代码的M Idrees给我。

private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     void LoadFileNames() 
     { 
      string path = @"C:\Users\HP8200\Desktop\Faturas Teste"; 
      string fileNameOnly = ""; 
      foreach (var item in System.IO.Directory.GetFiles(path, "*.txt")) // here you can change file extension according to your needs. 
      { 
       fileNameOnly = System.IO.Path.GetFileNameWithoutExtension(item); 
       checkedListBox1.Items.Add(fileNameOnly); // actually adding files names to checkbox listing 
      } 
     } 
    } 
+1

评论不适用于扩展讨论;这个对话已经[转移到聊天](http://chat.stackoverflow.com/rooms/151621/discussion-on-question-by-joao-costa-connecting-a-form-with-console)。 –

回答

2

我假定你有CheckedListBox控制(名称checkedListBox1)加入您的形式。并且需要通过从某个目录获取文件来添加项目。如果这是好的。您可以使用此代码:

private void LoadFileNames() 
{ 
    string path = @"C:\Path\To\Directory"; 
    string fileNameOnly = ""; 
    foreach (var item in System.IO.Directory.GetFiles(path,"*.txt")) // here you can change file extension according to your needs. 
    { 
     fileNameOnly = System.IO.Path.GetFileNameWithoutExtension(item); 
     checkedListBox1.Items.Add(fileNameOnly); // actually adding files names to checkbox listing 
    } 
} 

您可以从事件,或者你需要一些其他的事件调用此函数。

private void Form1_Load(object sender, EventArgs e) 
{ 
    LoadFileNames(); 
} 
+0

谢谢,我添加了一些截图,如果它在某种程度上有所帮助。 –

+0

我已经测试过,清单是空的 –

+0

您设置了什么路径,并且该目录中是否存在任何“.txt”文件。你有没有从Form_Load事件中调用这个函数? –