1
是否可以在C#Windows控制檯應用程序中使用SQL Server Compact數據庫(與基於WebMatrix的網站使用相同類型的數據庫)?控制檯應用程序中的SQL Server CE數據庫
我真的很生氣的XML(和JSON)文件,並不真正喜歡其他數據庫解決方案(因爲它只是一個簡單的項目真的很多)。
我花了幾個小時尋找,但我可以找到的所有引用網站的東西(這顯然是不相關的)。
是否可以在C#Windows控制檯應用程序中使用SQL Server Compact數據庫(與基於WebMatrix的網站使用相同類型的數據庫)?控制檯應用程序中的SQL Server CE數據庫
我真的很生氣的XML(和JSON)文件,並不真正喜歡其他數據庫解決方案(因爲它只是一個簡單的項目真的很多)。
我花了幾個小時尋找,但我可以找到的所有引用網站的東西(這顯然是不相關的)。
這是一個簡單的控制檯應用程序,可能會讓你開始。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Oracle.DataAccess.Client;
using System.IO;
namespace execsql
{
/// <summary>
/// Simple Sql Executor for use in Batch files.
/// ExitCode = 0 on success
/// </summary>
class Program
{
private static string _sql;
static void Main(string[] args)
{
try
{
if (CheckArgs(args))
{
ExecuteSql(args);
Console.WriteLine("execsql Ok");
Console.WriteLine(_sql);
}
}
catch (Exception ex)
{
Environment.ExitCode = 2;
Console.WriteLine("ExecSql Encountered an Error");
Console.WriteLine(_sql);
Console.WriteLine(ex.Message);
}
}
private static void ExecuteSql(string[] args)
{
LoadSql(args);
using (OracleConnection conn = GetConnection(args))
{
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = _sql;
cmd.ExecuteNonQuery();
}
}
private static void LoadSql(string[] args)
{
if (args[3].StartsWith("/f=")) // not tested
{
StringBuilder script = new StringBuilder();
string fname = args[3].Split('=')[1];
string[] strings = File.ReadAllLines(fname);
foreach(string str in strings)
script.Append(str);
_sql = script.ToString();
}
else
{
_sql = args[3];
}
}
private static bool CheckArgs(string[] args)
{
if (args.Count() == 4)
{
return true;
}
else
{
Console.WriteLine("Invalid Number Of Arguments - Expected 4");
Console.WriteLine("Use : execsql <dbServer> <dbUser> <dbPassword> <sql>");
Environment.ExitCode = 1;
return false;
}
}
private static OracleConnection GetConnection(string[] args)
{
string connectionString = String.Format("Data Source={0};User ID={1};Password={2}", args[0], args[1], args[2]);
return new OracleConnection(connectionString);
}
}
}
爲什麼不是 - 你需要知道什麼? –
我在這裏沒有看到任何問題。只需打開連接,執行命令並像平常一樣關閉。 – Steve
我確實嘗試過,但它似乎不是爲我的控制檯應用程序添加數據庫_anywhere_的選項。我沒有提到這一點,因爲我只是假設你不能(因爲我和控制檯應用程序有任何關係,這已經很長時間了)。 –