2015-12-02 44 views
0

我需要一些幫助。我有一個數據庫裏面有一些信息的gridview和一個刪除按鈕,應該刪除信息,通過發送2個參數到一個存儲過程 - 成員ID,我從一個會話和(在我的情況下)活動ID, m試圖從我grodview的選定行中的第一個單元格中取出。由於某種原因我的第二個參數始終是「空」,空GridViewSignUps.SelectedRow.Cells as sql參數

這是我想要的代碼:我越來越

CREATE PROCEDURE [dbo].[DeleteSignUp] 
    @MemberId int, 
    @ActivityId int 
AS 
begin 
    delete from Sign_Ups 
    where @MemberId = Sign_Ups.Member_number 
    and @ActivityId = Sign_Ups.Activity_Number 
end 
RETURN 

protected void GridViewSignUps_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     SqlCommand cmd = null; 
     cmd = conn.CreateCommand(); 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.CommandText = "DeleteSignUp"; 

     try 
     { 
      conn.Open(); 

      SqlParameter pmMemberId = cmd.Parameters.Add("@MemberId", SqlDbType.Int); 
      pmMemberId.Direction = ParameterDirection.Input; 
      pmMemberId.Value = Session["UserID"]; 

      SqlParameter pmActId = cmd.Parameters.Add("@ActivityId", SqlDbType.Int); 
      pmActId.Direction = ParameterDirection.Input; 
      pmActId.Value = Convert.ToInt32(GridViewSignUps.SelectedRow.Cells[1].Text); 

      cmd.ExecuteNonQuery(); 
     } 
     catch (Exception ex) 
     { 
      LabelMessage.Text = ex.Message; 
     } 
     finally 
     { 
      conn.Close(); 
      UpdateGridView(); 
     } 
    } 

而且我的存儲過程

對象引用未設置爲對象的實例。

將單元ID作爲參數發送到我的過程的正確方法是什麼?

感謝提前:)

+1

可能重複[什麼是NullReferenceException,我該如何解決它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-doi-i-fix-它) –

+0

我明白什麼是錯誤的意思,我不明白的是我的代碼有什麼問題... – BlondGirl87

+0

嘗試:從Sign_Ups刪除其中MemberId = @ MemberId和ActivityId = @ ActivityId ...... Here MemberId和ActivityId是你的表的列名。 –

回答

0

要獲取當前用戶的ID訪問你的網站,你可以使用

HttpContext.Current.User.Identity.Name 

然而,這是代表用戶名,而不是一個整數,字符串,所以您可能必須調整存儲過程以獲取字符數據類型,然後在執行刪除操作之前根據該值查詢所需的整數值。

此外,您正試圖刪除SelectedIndexChanged,這意味着只要用戶選擇不同的gridview行就會刪除。這可能不是你想要的。相反,你可以包含每行的刪除鏈接,映射你的gridview OnRowDeleting屬性(類似OnRowDeleting="GridViewSignUps_RowDeleting"),然後在該過程中刪除。如果您選擇在網格外部使用單個刪除按鈕,則可能需要處理該按鈕的單擊事件中的刪除。