私のプロジェクトでDALを使用しようとしていますが、結果を取得してDBから値を取得した後にデータテーブルに追加すると、DALの結果を使用したASP.Netがハンドラに設定されない
ASPXページ:
UserDetails us = new UserDetails();
UserHandler Handler = newUserHandler();// Starts
Handler.GetUserDetails(Email); // comes out
Display.Text = us.Code; // null
UserHandler.CS
namespace LoginSystem Handler
{
public class UserHandler
{
UserDBAccess UserDb = null;
public AspUserHandler()
{
UserDb = new UserDBAccess();
}
// This fuction does not contain any business logic, it simply returns the
// list of employees, we can put some logic here if needed
public User GetUserDetails(string email)
{
return UserDb.GetUserDetails(email);
}
}
}
UserDBAccess.CS
public class AspUserDBAccess
{
public UserDetails GetUserDetails(string Email)
{
UserDetails AspUser = null;
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@PUserEmail", Email)
};
using (DataTable table = SqlDbHelper.ExecuteParamerizedSelectCommand("GetUserDetails", CommandType.StoredProcedure, parameters))
{
if (table.Rows.Count == 1)
{
DataRow row = table.Rows[0];
AspUser = new UserDetails();
AspUser.Code = row["Code"].ToString();
}
}
return AspUser;
}
}
Sqlhelperclass.CS:
internal static DataTable ExecuteParamerizedSelectCommand(string
CommandName, CommandType cmdType, SqlParameter[] param)
{
DataTable table = new DataTable();
using (SqlConnection con = new SqlConnection(conString))
{
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandType = cmdType;
cmd.CommandText = CommandName;
cmd.Parameters.AddRange(param);
try
{
if (con.State != ConnectionState.Open)
{
con.Open();
}
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(table); // just "{}" but doesnt say null
}
}
catch
{
throw;
}
}
}
return table; // {} nothing in table
}
//
私は再び価値があると思っていますが、決してそれを設定せずにASPXページに戻ります。 UserDetailsはヌル
あなたが_handlerの戻り値を割り当てない場合.GetUserDetails(電子メール); _あなたの_UserDetailsに_あなたの努力の結果であることは決してわかりませんメインコードの変数us_ – Steve