我已经创建了一个派生的IDbCommand classe,我想用它来更轻松地进行Sql-DB访问。
all <- read.csv("XXX.csv")
splitted <- split(all, all$case_con)
dim(splitted[[1]]) #--> gives me 185
dim(splitted[[2]]) #--> gives me 180
现在我想扩展这个类来处理从sql-procedure的输出参数到本地类的属性的值赋值,如下所示:
internal class Prozedur : IDbCommand
{
private SqlCommand command = new SqlCommand();
private SqlConnection connection;
string commandtext;
CommandType commandType;
...
这显然不会起作用,因为没有转换。我知道使用
Prozedur p = new Prozedur();
object.Name = p.Parameters["@Name"].Value;
会奏效。我如何扩展Prozedur类,所以我将能够使用
object.Name = (string)p.Parameters["@Name"].Value;
并执行其他操作,例如检查参数值或检查空值?
答案 0 :(得分:2)
实现一种方法来访问这些值并返回它们已经输入的内容:
public TValue GetValue<TValue>(string parameterName)
{
// Do stuff here before returning the parameter value...
return (TValue)Parameters[$"@{parameterName}"]?.Value;
}
稍后,您将访问您的参数&#39;值如下:
string name = proc.GetValue<string>("name");
除此之外......还有另一种方法可以实现获取特定类型值的方法:
public object GetValue(string parameterName)
{
// Do common stuff here to any parameter value type
return Parameters[$"@{parameterName}"]?.Value;
}
public string GetString(string parameterName)
{
// Do common stuff here to string parameters only
return (string)GetValue(parameterName);
}