Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用复选框在GridView中显示存储过程的结果_C#_Asp.net_.net_Asp.net Mvc - Fatal编程技术网

C# 使用复选框在GridView中显示存储过程的结果

C# 使用复选框在GridView中显示存储过程的结果,c#,asp.net,.net,asp.net-mvc,C#,Asp.net,.net,Asp.net Mvc,我需要使用复选框在gridview中显示存储过程的结果。但我的结果集并没有绑定到gridview,因为我正在处理一个现有的门户,该门户已将连接字符串内置为dll。这是我的密码 protected void Go_Rgn_Click(object sender, EventArgs e) { SecurityController SC = new SecurityController(); plhTable.Visible = true; plhChoose.Visible

我需要使用复选框在gridview中显示存储过程的结果。但我的结果集并没有绑定到gridview,因为我正在处理一个现有的门户,该门户已将连接字符串内置为dll。这是我的密码

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);
}

当预期输出为数据表时,您试图返回一个空值:

错误在第行:

return  m_WorkoutPortal_DB.ExecuteNonQuery(cmd);
ExecuteOnQuery不返回数据表

编辑:


@user1080139看起来需要一个SQLDataAdapter。我将重新编辑我的帖子,向您展示如何实现这一点;“无法将类型void隐式转换为System.Data。DataTable@user1080139你确定BindGridView的返回类型是DataTable而不是void吗?你使用我的代码了吗?-我的代码只返回DataTable@user1080139-我已编辑了我的答案,以包含不同版本的Go_Rgn_Click。执行此操作并查看您得到的结果。
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();
}