簡體   English   中英

在Gridview中選擇一行並將其刪除-Asp.net

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM