如何在函数中创建IDataParameter并返回它?

时间:2018-08-24 08:59:53

标签: c#

我不知道这个问题的正确性,但是我的项目条件是我需要一个获取值和参数名称并返回Parameter以便在某些命令中使用的函数。
我正在考虑的原型是这样的:

public IDataParameter CreateParameter(string parameterName, object value)

这到底是要这样做吗?

2 个答案:

答案 0 :(得分:0)

虽然您肯定可以做到这一点,但这意味着您需要将代码实例化为要实例化返回值的类 中。 >

最好是传递命令,因为他们应该知道他们需要什么类型的参数。

示例:

public IDbDataParameter CreateParameter(IDbCommand command, string parameterName, object value)
{
    var parameter = command.CreateParameter();

    parameter.ParameterName = parameterName;
    parameter.Value = value;

    return parameter;
}

答案 1 :(得分:0)

由于@nvoigt,我为它创建了一个从IDBDataParameter派生的类
我根据需要添加了两个构造函数。

public class MyClass: IDbDataParameter
{
    public MyClass(string parameterName, object value)
    {
        ParameterName = parameterName;
        Value = value;
    }
    public MyClass(string parameterName, object value, DbType dbType)
    {
        ParameterName = parameterName;
        Value = value;
        DbType = dbType;
    }
    public DbType DbType { get; set; }
    public ParameterDirection Direction { get; set; }
    public bool IsNullable => throw new NotImplementedException();
    public string ParameterName { get; set; }
    public string SourceColumn { get; set; }
    public DataRowVersion SourceVersion { get; set; }
    public object Value { get; set; }
    public byte Precision { get; set; }
    public byte Scale { get; set; }
    public int Size { get; set; }
}


并在这样的方法中使用它们:

public IDbDataParameter CreateParameter(string parameterName, object value)
    {
        return new MyClass(parameterName, value);
    }