[英]Selecting a row in Gridview and deleting it - Asp.net
我有一個gridview從MS Access數據庫填充其數據。 我已在gridview上啟用“選擇”,並創建了一個刪除按鈕。 我想在gridview上選擇一行,並在按下Delete按鈕時從gridview以及數據庫中刪除數據。 以下是我嘗試的代碼,但無法正常工作。
我收到的錯誤是代碼行上的“對象引用未設置為對象的實例”,它說:“ myDataSet.Tables [“ Users”]。Rows [i] .Delete();”
Webservice方法://修改數據庫
[WebMethod]
public string DatabaseUserModify(DataSet myDataset)
{
string database = "Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory|/studentdb.accdb;Persist Security Info=True";
OleDbConnection myConn = new OleDbConnection(database);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("Select * from Users",
myConn);
OleDbCommandBuilder builder = new OleDbCommandBuilder(myDataAdapter);
builder.QuotePrefix = "[";
builder.QuoteSuffix = "]";
myConn.Open();
myDataAdapter.Update(myDataset, "Forum");
myConn.Close();
return "done";
}
網站:
protected void DeleteButton(object sender, EventArgs e)
{
Service myService = new Service();
myDataSet = myService.AdminGetUserTable();
int i = GridView1.SelectedIndex;
myDataSet.Tables["Users"].Rows[i].Delete();//This is where I am getting error
GridView1.DataSource = myDataSet;
GridView1.DataBind();
myService.DatabaseUserModify(myDataSet);
}
回發后,您的myDataSet可能會丟失。 您必須將myDataSet保存在頁面的ViewState中,以便在回發中保留其值。 像這樣:
public DataSet myDataSet
{
get
{
return ViewState["myDataSet"] != null ? (DataSet)ViewState["myDataSet"] : null;
}
set
{
ViewState["myDataSet"] = value;
}
}
但是,將大型數據/對象保存在ViewState中是最糟糕的主意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.