关于C#的SqlDataReader对象的使用问题
2013-06-29
展开全部
MultipleActiveResultSets=true;这个是状态保持的关键字,要放到数据库字符串里面。另外给你一个执行方法你看: public static List<T_PET> GetT_Pet()
{ List<T_PET> list = new List<T_PET>();
string sqlusp = ".usp_SelectT_PET";//执行查询
using (SqlDataReader read = DBHelp.SelectN(sqlusp))
{
while (read.Read())
{
T_PET pet = new T_PET();
pet.ID = Convert.ToInt32(read["ID"]);
pet.NAME = (string)read["NAME"];
pet.REMARK = (string)read["REMARK"];
pet.BIRTHDAY = (DateTime)read["BIRTHDAY"];
list.Add(pet);
}
read.Close();
}
return list;
} DBHelp里面的SelectN(): public static SqlDataReader SelectN(string sqlusp)
{
SqlCommand cmd = new SqlCommand(dboOwner + sqlusp, Connection);
cmd.CommandType = CommandType.StoredProcedure;//设置为存储过程方式
SqlDataReader read = cmd.ExecuteReader();
return read;
}
public static SqlDataReader SelectN(string sqlusp, SqlParameter values)
{
SqlCommand cmd = new SqlCommand(dboOwner + sqlusp, Connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(values);
SqlDataReader read = cmd.ExecuteReader();
return read;
}
public static SqlDataReader SelectN(string sqlusp, SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand(dboOwner+sqlusp,Connection);
cmd.Parameters.AddRange(values);
SqlDataReader read = cmd.ExecuteReader();
return read;
}
{ List<T_PET> list = new List<T_PET>();
string sqlusp = ".usp_SelectT_PET";//执行查询
using (SqlDataReader read = DBHelp.SelectN(sqlusp))
{
while (read.Read())
{
T_PET pet = new T_PET();
pet.ID = Convert.ToInt32(read["ID"]);
pet.NAME = (string)read["NAME"];
pet.REMARK = (string)read["REMARK"];
pet.BIRTHDAY = (DateTime)read["BIRTHDAY"];
list.Add(pet);
}
read.Close();
}
return list;
} DBHelp里面的SelectN(): public static SqlDataReader SelectN(string sqlusp)
{
SqlCommand cmd = new SqlCommand(dboOwner + sqlusp, Connection);
cmd.CommandType = CommandType.StoredProcedure;//设置为存储过程方式
SqlDataReader read = cmd.ExecuteReader();
return read;
}
public static SqlDataReader SelectN(string sqlusp, SqlParameter values)
{
SqlCommand cmd = new SqlCommand(dboOwner + sqlusp, Connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(values);
SqlDataReader read = cmd.ExecuteReader();
return read;
}
public static SqlDataReader SelectN(string sqlusp, SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand(dboOwner+sqlusp,Connection);
cmd.Parameters.AddRange(values);
SqlDataReader read = cmd.ExecuteReader();
return read;
}
2013-06-29
展开全部
DataReader只能查询一次,如果你要查询获得集合信息,如返回list集合则需要在数据库连接字符串里面加上状态保持的关键字。 另外你的上面那个方法有点问题你为什么不将实体创建写再if的外面呢?然后在代码的最后返回实体对象?完全可以在最后不用写return null,而可以写return info;如果你是循环查询获得结果,那么你查询永远也只会获得一条结果的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-29
展开全部
有什么问题呀?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询