參數我要以下是必要的參數在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服務器,但其格式不理解。 –