This example uses the following Nuget packages:
https://www.nuget.org/packages/CommandLineParser/2.3.0/
https://www.nuget.org/packages/Dapper/1.50.5/
class Program { public class Options { [Option('c', "ConnectionString", Required = true, HelpText = "The SQL Connection string")] public string ConnectionString { get; set; } [Option('i', "InputFile", Required = true, HelpText = "The file path containing SQL query")] public string InputFile { get; set; } } static void Main(string[] args) { var connectionString = string.Empty; var inputFile = string.Empty; Parser.Default.ParseArguments(args) .WithParsed(o => { connectionString = o.ConnectionString; inputFile = o.InputFile; }); if ( string.IsNullOrWhiteSpace(connectionString) || string.IsNullOrWhiteSpace(inputFile) ) { Console.WriteLine("Usage #1: RunSqlCmd -c \"CONNECTION-STRING-HERE\" -i \"FILE-PATH-TO-SQL-QUERY\""); Console.WriteLine("Usage #2: RunSqlCmd --ConnectionString \"CONNECTION-STRING-HERE\" --InputFile \"FILE-PATH-TO-SQL-QUERY\""); return ; } // get query file contents string query = System.IO.File.ReadAllText(inputFile); // execute the query using (var connection = new SqlConnection(connectionString)) { connection.ExecuteScalar(query); } }