То, что я пытаюсь сделать, это создать произвольную команду sql с параметрами, установить значения и типы параметров, а затем вернуть проанализированную команду sql с включенными параметрами. Я не буду запускать эту команду напрямую для базы данных sql, поэтому подключение не требуется. Так что, если бы я запустил приведенный ниже пример программы, я бы надеялся увидеть следующий текст (или что-то подобное):
WITH SomeTable (SomeColumn)
AS
(
SELECT N':)'
UNION ALL
SELECT N'>:o'
UNION ALL
SELECT N'^_^'
)
SELECT SomeColumn FROM SomeTable
И пример программы:
using System;
using System.Data;
using System.Data.SqlClient;
namespace DryEraseConsole
{
class Program
{
static void Main(string[] args)
{
const string COMMAND_TEXT = @"
WITH SomeTable (SomeColumn)
AS
(
SELECT N':)'
UNION ALL
SELECT N'>:o'
UNION ALL
SELECT @Value
)
SELECT SomeColumn FROM SomeTable
";
SqlCommand cmd = new SqlCommand(COMMAND_TEXT);
cmd.CommandText = COMMAND_TEXT;
cmd.Parameters.Add(new SqlParameter
{
ParameterName = "@Value",
Size = 128,
SqlDbType = SqlDbType.NVarChar,
Value = "^_^"
});
Console.WriteLine(cmd.CommandText);
Console.ReadKey();
}
}
}
Достижимо ли это с помощью стандартных библиотек .net? Первоначальный поиск говорит нет, но я надеюсь, что ошибаюсь.