将文本文件保存到SQL并将其发送到FTP服务器
我已经创建了一个编程的文本文件,并将其保存到一个文件夹中,现在我需要将它保存到数据库(我已经创建了表格)中的一个表中,之后用这些文本文件填充复选框并将它们发送到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
创建一个存储过程,它接受两个参数文件名和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();
}
我会尝试,很快我会给你反馈。谢谢 –
我应该为其名称和内容替换'@ filename'和'@ filecontent'吗? –
是....将两个参数替换为名称和内容。 –
我看不出SQL,复选框和FTP问题部分是如何相互关联的。请一次只提一个问题!这不是一个代码写入服务。 –
好的,对不起。首先,我需要将文本文件保存到SQL中。然后用保存在SQL上的数据填充checbox,然后将选中的文件发送到FTP服务器。 –
您可以编写一个存储过程,将您的文件名和内容存入其中,并将其保存到表中。 –