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

C# 使用存储过程将SQL结果输出到gridview不绑定,c#,.net,sql,sql-server-2008,stored-procedures,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

继我的上一个问题之后,我现在有了一个基本应用程序,它在提供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。有人能看出我哪里做错了吗


谢谢

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

SqlDataAdapter oAdapter = new SqlDataAdapter(selectcmd,conn);

你应该检查两件事:

  • 首先,您需要检查存储过程是否返回数据 或者不是
  • 检查

  • 您所说的“它没有像我所希望的那样将新信息输出到我的gridview”是什么意思?有没有可能更具体一点?我的意思是你看不到的代码正在按照我的意愿更新记录,但是一旦记录被更新,上面的代码就不会返回新行。事实上,这并没有带来任何回报。我想你已经用sql中的th ID运行了这个过程,并返回了结果?同时检查ds中是否有表是的SP带回了我在SSMS中所期望的,是的ds有所有表,SP的listedTry gridSelectID.DataSource=ds.Tables[indextableyouwant2show];这没有什么意义。指挥部正在把它交给指挥部。我的意思是这是一样的。