Je suis bloqué pour le moment essayer de trouver une méthode d'insertion dans SQL Server à partir de F #.F # insérer une liste dans SQL Server
J'ai une fonction F # qui itère à travers tous les fichiers dans un dossier suivant un modèle défini par l'utilisateur. Ensuite, je peux utiliser les données retournées pour mettre dans une liste ou (idéalement) insérer dans une base de données.
J'ai déjà un insert en-sql fonction de travail qui fonctionne correctement:
let execNonQuery conn s =
let comm =
new SqlCeCommand(s, conn)
try
comm.ExecuteNonQuery() |> ignore
with e ->
printf "Error : %A\n" e
let string = "insert into MyTable (MyColumn) values ('test .. again')"
execNonQuery conn string; // works
J'essaie d'obtenir que cette méthode fonctionne correctement:
let rec getAllFiles dir pattern =
seq { yield! Directory.EnumerateFiles(dir, pattern)
for d in Directory.EnumerateDirectories(dir) do
yield! getAllFiles d pattern }
let getApplications (dir : string) (extension : string) =
getAllFiles dir extension
//|> Seq.toList // If I need to create a list of returned values
|> Seq.iter (fun s -> SQLInsertString s) // This does not work as it complains about the function not being of type unit
Si je Seq.toList
seulement et appelez la fonction comme ci-dessous, cela fonctionne:
getApplications "C:\Admin" "*.txt" // works
L'autre chose que je ne comprends pas est de savoir comment créer une commande d'insertion qui accepte une chaîne pour Value. Par exemple:
let SQLInsertString s = "insert into MyTable (MyColumn) values (%s)" //does not work
Merci beaucoup Tomas, fonctionne comme un charme. Maintenant, je m'en occupe mieux aussi –