Cela dépend de la structure que votre interface utilisateur utilise, mais comme vous avez étiqueté C#, je vais supposer Winforms.
Serait-il possible de le faire à la place? Placez votre SQL dans un fichier, mais ne remplit pas les paramètres, à la place mis en place des supports que vous pouvez utiliser dans le code pour ajouter les valeurs qui viennent de vos zones de texte, par exemple:
create view [dbo].[budget_change-22]
as select projectname, projectnumber,location, client
FROM OPENROWSET('SQLNCLI', 'SERVER={0};UID={1};PWD={2},
'SET NOCOUNT ON;SET FMTONLY OFF;EXEC abcworks_sto..SP_Budget_444 38') AS Workchanged_444
Go
Notez que le « {x } ', dans votre code, lisez le fichier et utilisez string.Format pour remplacer les valeurs {x} si nécessaire. Code Psuedo:
// Read in the template file
string fileSql = System.File.IO.ReadAllText(pathToYourTemplateFile)
// Replace the place holders with your values (sample assumes
// they are coming from textboxes on the UI
string formattedSql = string.Format(fileSql,
txtServerName.Text,
txtUid.Text,
txtPassword.Text);
// Write out the new file
System.IO.File.WriteAllText(formattedSql, pathToYourNewFile);
Si pour une raison quelconque, vous ne pouvez pas aller dans le sens d'un fichier modèle, vous pouvez alors utiliser String.replace() par exemple
// Read in the template file
string fileSql = System.File.IO.ReadAllText(pathToYourTemplateFile)
// Replace the values with the input from the UI
fileSql.Replace("AABB1089\abcWORKSS_STO", txtServer.Text)
// ... same for uid ...
// ... same for pwd ...
// Write out the new file
System.IO.File.WriteAllText(fileSql , pathToYourNewFile);
WPF? Windows.Forms? –