J'ai mis en œuvre une application Web et Windows qui a frappé une URL contenant le chemin d'accès au fichier csv. J'utilise WebClient
pour télécharger le fichier, puis lire les données de .csv
et écrire dans une table SQL Server.Importer CSV à partir de l'URL et stocker dans la table SQL Server sans télécharger le fichier
Existe-t-il un moyen de le faire sans télécharger/enregistrer le .csv
et écrire la réponse .csv
de l'URL dans la table SQL Server à l'aide d'une procédure stockée?
Ci-dessous un extrait de mon code C# fonctionnel.
URL_VALUE = "http://test.url.com/table.csv?test.csv";
string csvPath = "~C:\\SaveFile\\test.csv";
WebClient client = new WebClient();
client.DownloadFile(@URL_VALUE, csvPath);
writeToSQL(csvPath, Symbol);
// Code snippet for SQL Write operation
public void writeToSQL(string url, string filepath)
{
using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(connection))
{
// Set the database table name
sqlBulkCopy.DestinationTableName = "dbo.csv_PopulateData";
sqlBulkCopy.ColumnMappings.Add("Col1", "Val1");
sqlBulkCopy.ColumnMappings.Add("Col2", "Val2");
sqlBulkCopy.ColumnMappings.Add("Col3", "Val3");
sqlBulkCopy.WriteToServer(table);
}
}
Que ce soit possible ou non, du point de vue de la sécurité, j'éviterais toujours que la base de données communique directement avec Internet. –
Merci pour les heads up! Je vais essayer d'écrire une API RESTFull qui obtiendra le httpResponse au format JSON/XML, puis écrire dans la table SQL Server. –
En utilisant les méthodes 'HttpWebRequest' et' HttpWebResponse' j'étais capable de tirer des données à partir d'un fichier '.csv' présent sur l'URL et écrire dans une table SQL Server. –