2012-05-24 36 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 - 检查我的编辑 –

相关问题