我必须遵循在 sql server 2008 r2 中执行存储过程所需的参数
da.SelectCommand.Parameters.AddWithValue("@StartDate", sessionStartDate.ToString());
da.SelectCommand.Parameters.AddWithValue("@EndDate", sessionEndDate.ToString());
da.SelectCommand.Parameters.AddWithValue("@PaymentType", payment.ToString());
这些是执行存储过程所必需的。所有会话变量都正确传递。但是,当 gridview 呈现时,它不显示任何数据。我知道有数据,因为我可以在 SSMS 上运行存储过程,并且它与传递给 proc 的参数完美运行(当我输入它们时)。
在这一点上我很困惑,所以任何帮助都会有所帮助。
grdDenialDetail.DataSource = ds.Tables["DetailDenial"].DefaultView;
grdDenialDetail.DataBind();
整个常规:(也许这会有所帮助)
public void ExecuteDetailReport()
{
string sessionConnection = Session["Company"].ToString();
string sessionStartDate = Session["StartDate"].ToString();
string sessionEndDate = Session["EndDate"].ToString();
string payment = Session["payment"].ToString();
SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings[sessionConnection].ConnectionString);
SqlDataAdapter da = new SqlDataAdapter("dbo.cusGenDenialReportPivotStylePType", conn);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
/*da.SelectCommand.Parameters.Add(new SqlParameter("@StartDate", SqlDbType.VarChar, 11)).Value = sessionStartDate.ToString();
da.SelectCommand.Parameters.Add(new SqlParameter("@EndDate", SqlDbType.VarChar, 11)).Value = sessionEndDate.ToString();
da.SelectCommand.Parameters.Add(new SqlParameter("@PaymentType", SqlDbType.VarChar, 100)).Value = payment.ToString();*/
da.SelectCommand.Parameters.AddWithValue("@StartDate", sessionStartDate);
da.SelectCommand.Parameters.AddWithValue("@EndDate", sessionEndDate);
da.SelectCommand.Parameters.AddWithValue("@PaymentType", payment);
lblTest.Visible = true;
lblTest.Text = "You selected " + payment + ".";
DataSet ds = new DataSet();
da.Fill(ds, "DetailDenial");
grdDenialDetail.DataSource = ds.Tables["DetailDenial"].DefaultView;
grdDenialDetail.DataBind();
da.Dispose();
conn.Close();
}