使用存储过程将SQL结果输出到gridview不绑定

时间:2013-06-18 09:39:18

标签: c# .net sql sql-server-2008 stored-procedures

继上一个问题之后,我现在有了一个基本应用程序,它在提供3个变量并单击按钮后更新了我的SQL Server 2008 R2数据库中的记录。

我现在想添加一个功能,一旦记录更新,它会将结果显示给我已添加到表单的gridview。命名为gridSelectID。我在db级别有一个名为viewclassdata的基本存储过程,它将@ID作为参数并返回仅与此相关的行。

就C#而言,到目前为止我已经得到了什么:

//execute the command 'cmd', the profile class will now be updated at db level
                cmd.ExecuteNonQuery();

                //Once the Profile Class change has been committed, show the results in the gridview
                var selectcmd = new SqlCommand("dbo.viewclassdata", conn);
                selectcmd.CommandType = CommandType.StoredProcedure;
                selectcmd.Parameters.AddWithValue("@ID", ID);
                SqlDataAdapter oAdapter = new SqlDataAdapter(selectcmd);
                DataSet ds = new DataSet();
                oAdapter.Fill(ds);
                gridSelectID.DataSource = ds;
                //gridSelectID.DataBind();

我不得不评论gridSelectID.DataBind(),因为它引发了错误,我从那时起就认为win表格不需要DatBind()方法。

我已经在调试模式下运行,虽然程序仍然完美地更新数据库,但它并没有按照我的意愿将新更新的信息输出到我的gridview。谁能看到我哪里出错?

由于

2 个答案:

答案 0 :(得分:0)

尝试在第二个参数中传递conn,如下所示: -

SqlDataAdapter oAdapter = new SqlDataAdapter(selectcmd,conn);

答案 1 :(得分:0)

你应该检查两件事:

  1. 首先,您需要检查存储过程是否正在返回数据 或不。
  2. 检查how to bind DataSet to DataGridView