C# 使用复选框在GridView中显示存储过程的结果
我需要使用复选框在gridview中显示存储过程的结果。但我的结果集并没有绑定到gridview,因为我正在处理一个现有的门户,该门户已将连接字符串内置为dll。这是我的密码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
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();
}