PDA

View Full Version : مبتدی: ارتباط با دیتابیس



noth50
یک شنبه 22 بهمن 1391, 18:17 عصر
درود
یک پروژه 3لایه ساختم و زمان اجرای پروژه با پیغام Invalid attempt to call Read when reader is closed. مواجه می شوم.

BLL

namespace BussinessLogicLayer
{
public class AddUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailAddress { get; set; }
public string UserName { get; set; }

public static List<AddUser> GetID(int getid)
{
DataAccessLayer.AddFirstUsers users = new DataAccessLayer.AddFirstUsers();
SqlDataReader dr = users.GetID(getid);

List<AddUser> userlist = new List<AddUser>();
while(dr.Read())
{
AddUser adduser = new AddUser();

adduser.FirstName = dr["FirstName"].ToString();
adduser.LastName = dr["LastName"].ToString();

userlist.Add(adduser);
}
return userlist;
}
}
}

کلاس adduser

public SqlDataReader GetID(int UserId)
{
return ExecuteReader("Data Source =(Local);Initial Catalog=Users;Integrated Security=True;",
"GetId", CommandType.StoredProcedure, new SqlParameter[]
{
new SqlParameter("@UserId",UserId)
});
}

و connection

public static SqlDataReader ExecuteReader(string ConnectionString, string CommandText, CommandType commandtype, SqlParameter[] parameter)
{
SqlConnection ObjCon = new SqlConnection(ConnectionString);

SqlCommand ObjCom = new SqlCommand();
ObjCom.Connection = ObjCon;
ObjCom.CommandType = commandtype;
ObjCom.CommandText = CommandText;
ObjCom.Parameters.AddRange(parameter);
ObjCon.Open();
SqlDataReader retval = ObjCom.ExecuteReader();
ObjCon.Close();
return retval;
}

این هم فایل زیپ شده برنامه http://8pic.ir/images/3u7ac46b67ev0spmkhot.rar
بهترین باشید