IDE: Microsoft Visual Studio 2012、DBMS: Microsoft SQL Server 2012
ログイン ページとメイン ページの 2 つの ASP.NET Web ページがあります。私がしたいのは、ログインした後、ID をセッションに保存し、それを使用してデータベース (ID と同じテーブル) からユーザーの名を取得し、メイン ページのラベルに入れることです。私は過去にそれを行うことができました:
SqlDataReader
しかし今、私は以下を返す Data Access Layer クラスを持っています:
DataTable
私の問題があります。私はそれを行う方法を理解できないようです。これまでのところ、私はこれらの作品を持っています:
Session.Add("StudentID", dt);
以上がログインページでした。メインページは次のとおりです。
DataTable dt = (DataTable)Session["StudentUser"];
int ID = int.Parse(Session["StudentID"].ToString());
DAL.GetData("SELECT Fname FROM StudentUser WHERE StudentID = " + ID);
lblName.Text = dt["Fname"].ToString();
私のDALコードについては、次のとおりです。
public static DataTable GetData(string sql)
{
SqlConnection con = new SqlConnection(DAL.ConnectionString);
con.Open();
SqlCommand com = new SqlCommand(sql, con);
SqlDataAdapter da = new SqlDataAdapter(com);
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
テーブルが呼び出さStudentUser
れ、ラベルに必要な部分はFname
(dr)を使用する場合SqlDataReader
、ログインのコードは通常次のようになります。
Session.Add("StudentID", dr["StudentID"].ToString());
メインページの場合:
int ID = int.Parse(Session["StudentID"].ToString());
SqlCommand com = new SqlCommand("SELECT Fname FROM StudentUser WHERE StudentID = " + ID, con);
SqlDataReader dr = com.ExecuteReader();
dr.Read();
lblName.Text = dr["Fname"].ToString();
dr.Close();
コードはSqlDataReader
機能しますが、慣れていないコードを使用することになったとしても、可能な限りデータ アクセス レイヤーを使用することにしました。親愛なる人々を助けてください。:)