参数我要以下是必要的参数在SQL Server中执行存储过程2008 R2使用会话变量在asp.net
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();
}
哪里是你的绑定代码? –
我将它添加到问题中。 – MaximusPrime
不需要'ToString()'每个变量; “AddWithValue”的第二个参数的类型是'object'。如果将其保留,最终可能会将变量传递给SQL服务器,但其格式不理解。 –