2012-05-24 71 views
3

我需要在複選框的gridview中顯示存儲過程的結果。但是我的結果集並沒有被綁定到gridview,因爲我正在使用已經將連接字符串內置爲dll的現有門戶網站。這裏是我的代碼..在複選框中顯示GridView中存儲過程的結果

protected void Go_Rgn_Click(object sender, EventArgs e) 
{ 
    SecurityController SC = new SecurityController(); 
    plhTable.Visible = true; 
    plhChoose.Visible = false; 
    plhForm.Visible = false; 
    string Rgn = afRgn.Text; 
    DataTable dt = new DataTable(); 

    dt=SC.BindGridView(Rgn); 
    if (dt.Rows.Count > 0) 
    { 
     gvAll.DataSource = dt; 
     gvAll.DataBind(); 
    } 
} 

編譯器會引發錯誤

不能void類型轉換爲System.Data.DataTable

請告訴我這一點。

數據訪問層:

public DataTable BindGridView(string rgn) 
{ 
    string spdName = "spd_get_default_region"; 
    DbCommand cmd = DB.GetStoredProcCommand(spdName); 
    DB.AddInParameter(cmd, "Rgn", DbType.String, rgn); 
    return DB.ExecuteNonQuery(cmd); 
} 

回答

2

您試圖返回一個空當預期輸出是一個數據表:

的錯誤是在行:

return m_WorkoutPortal_DB.ExecuteNonQuery(cmd); 

的ExecuteNonQuery不返回數據表

編輯:

public DataTable BindGridView(string rgn) 
{ 
    string spdName = "spd_get_default_region"; 

    DbCommand cmd = m_WorkoutPortal_DB.GetStoredProcCommand(spdName); 
    m_WorkoutPortal_DB.AddInParameter(cmd, "Rgn", DbType.String, rgn); 

    SqlDataAdapter da = new SqlDataAdapter(cmd); // Create a SQL Data Adapter and assign it the cmd value. 

    DataTable dt = new DataTable(); // Create a new Data table 
    da.Fill(dt); // Fill the data table with the results from the query 

    return dt; // return the data table 
} 


protected void Go_Rgn_Click(object sender, EventArgs e) 
{ 
    SecurityController SC = new SecurityController(); 
    plhTable.Visible = true; 
    plhChoose.Visible = false; 
    plhForm.Visible = false; 
    string Rgn = afRgn.Text; 

    gvAll.DataSource = SC.BindGridView(Rgn); 
    gvAll.DataBind(); 
} 
+0

好的..那麼我該怎麼做..我是一個新手。請幫忙.. – user1080139

+0

@ user1080139看起來像你需要一個SQLDataAdapter。我將重新編寫我的文章,向您展示如何實現這一目標。 –

+0

@ user1080139 - 檢查我的編輯 –

相關問題