如何使用C#在Templet(T)中转换ExecuteNonQuery结果。
我开发新的通用方法是sqlCommand结果是转换里面的任何数据类型。
example
Result<T>.Data =cmd.ExecuteNonQuery();
value is not store data inside.
结果类
public static class Result {
public static bool Sucess { get; set; }
public static T Data { get; set; }
public static bool ReturnValue { get; set; }
}
答案 0 :(得分:1)
您可能会从有关数据访问的基本教程中受益。
ExecuteNonQuery()
不会返回Sql结果集。它仅返回受查询影响的行数。您可能需要ExecuteScalar()
或ExecuteDataReader()
。
而不是Result<T>
,您需要Result<int>
或Result<string>
或Result<DateTime>
等。当声明时,您会使用T
一个通用类或方法,但是当使用您之前声明的泛型类型或方法时,您需要实际类型。
假设您使用ExecuteSclar()
,则必须将结果投射到所需的T
类型。
您需要该类的实例。而不仅仅是Result<int>.Data =
你必须做更多这样的事情:
var result = new Result<int>();
result.Data = (int)cmd.ExecuteScalar();
基本的数据访问教程可能还不够,您可能首先考虑一些基本的C#培训。