gpt4 book ai didi

sql - DbCommand.Parameters 中缺少 AddWithValue

转载 作者:行者123 更新时间:2023-12-05 08:15:02 25 4
gpt4 key购买 nike

我正在构建一个 sqlwrapper 来处理 MSsql 和 Sqlite,到目前为止,我使用通用 dbconnection、数据集和 dataadapter 没有问题,但是使用 dbcommand parameters.add 是唯一的选择。我想像 sqlcommand 和 sqlitecommand 一样使用 parameter.addwithvalue,但我不确定如何实现它。

例如这是我的 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() ,这是我希望在父 dbcommand 类中拥有的方法。

最佳答案

用扩展方法解决了

static class MyExtensions
{
public static void AddParameterWithValue(this DbCommand command, string parameterName, object parameterValue)
{
var parameter = command.CreateParameter();
parameter.ParameterName = parameterName;
parameter.Value = parameterValue;
command.Parameters.Add(parameter);
}
}

来自 http://social.msdn.microsoft.com/Forums/en-US/d56a4710-3fd1-4039-a0d9-c4c6bd1cd22e/dbcommand-parameters-collection-missing-addwithvalue-method

关于sql - DbCommand.Parameters 中缺少 AddWithValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21608362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com