だから私はキャッシュからxmlファイルに書き込もうとしています。ログインページからアカウントの詳細ページに移動すると、アカウントの詳細ページロード()がユーザー名/パスを取得し、データベースに送信し、一致する場合はテーブル情報を取得し、データをグリッドビューにバインドしてキャッシュに保存します。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
myBusinessLayer = new clsBusinessLayer(Server.MapPath("/"));
BindUserInfoGridView();
}
}
private Accounts BindUserInfoGridView()
{
string tempPath = Server.MapPath("Programaholics.accdb");
clsDataLayer myDataLayer = new clsDataLayer(tempPath);
Accounts userListing = myBusinessLayer.FindUsername(PreviousPage.Username.Text, PreviousPage.Password.Text);
gvUserInfo.DataSource = userListing.tblUserInfo;
gvUserInfo.DataBind();
Cache.Insert("UserDataSet", userListing);
return userListing;
}
businessLayer クラスには、xml に書き込む次のコードがあります。
public DataSet WriteUserXMLFile(System.Web.Caching.Cache appCache)
{
DataSet xmlDataSet = (DataSet)appCache["UserDataSet"];
xmlDataSet.WriteXml(dataPath + "/App_Code/username.xml");
return xmlDataSet;
}
accountDetails ページにある asp:Button には、次の onclick イベントがあります。
public void btnExportUserXML_Click(object senderr, EventArgs e)
{
//This was added after Review
myBusinessLayer= new clsBusinessLayer(Server.MapPath("/"));
myBusinessLayer.WriteUserXMLFile(Cache);
}
これは何らかの理由で機能しません。一部で例外が発生し続けmyBusinessLayer.writeXMLFile(Cache);
ます。ボタンをクリックするとページが更新され、キャッシュが失われると想定しています。これは学校向けのコース プロジェクトなので、sqlinjection やその他のセキュリティ テクニックについて知る必要はありません。xmlfile に保存するためのボタンを取得できない理由を知る必要があるだけです。ページロードを入れmyBusinessLayer.writeXMLFile(Cache);
て動作しますが、要件により、それをロードするボタンである必要があります。ありがとうございました。