我正在構建一個sqlwrapper來處理MSsql和Sqlite,到目前爲止我沒有使用通用的dbconnection,dataset和dataadapter的問題,但是使用dbcommand參數.add是唯一的選項。我想使用像sqlcommand和sqlitecommand parameter.addwithvalue,但我不確定如何實現它。缺少來自dbcommand.parameters的addwithval
例如這裏是我的sqlitefactory:
public class SqlLiteFactory : SqlFactory
{
public override DbConnection CreateConnection()
{
return new SQLiteConnection(ConfigurationManager.ConnectionStrings["ClientDBConnectionString"].ConnectionString);
//return new SQLiteConnection("Data Source=Resources\\qaqc.sqlite;Version=3");
}
public override DataAdapter CreateAdapter(string command, DbConnection connection)
{
return new SQLiteDataAdapter(command, connection as SQLiteConnection);
}
public override DbCommand CreateCommand()
{
return new SQLiteCommand();
}
}
這是我實現:
DbConnection c = SqlHandler.Instance.CreateConnection();
DbCommand cmd = SqlHandler.Instance.CreateCommand();
cmd.Connection = c;
cmd.CommandText = "SELECT column FROM table WHERE syncstatus = 0 and UserName = @user GROUP BY column;";
cmd.Parameters.Add("@user");
cmd.Parameters["@user"].Value = SystemInformation.UserName;
DbDataReader dr = cmd.ExecuteReader();
在更具體的SqlCommand和sqlitecommand有一個方法.addwithvalue()這就是我d喜歡在父類dbcommand類中使用。
添加一些代碼示例。 – Herrozerro
您正在使用DbCommand,您是否嘗試過使用SqlCommand? – Miller
以及我正在使用dbcommand,因爲我需要將它傳遞給sqlcommand或sqlite命令,我不確定是否將sqlcommand傳遞給sqlitecommand會起作用。 – Herrozerro