我不知道这个问题的正确性,但是我的项目条件是我需要一个获取值和参数名称并返回Parameter以便在某些命令中使用的函数。
我正在考虑的原型是这样的:
public IDataParameter CreateParameter(string parameterName, object value)
这到底是要这样做吗?
答案 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);
}