关于传输存储过程变量问题,变量值没变,但却不能显示(在线等待)
代码:
void BindGrid()
{
string ProductID = "";
for (int i = 0;i<Request.Cookies.Count-1;i++)
{
if(ProductID == "")
ProductID = Request.Cookies[i].Value.ToString() ;
else
{
ProductID = ProductID + "," + Request.Cookies[i].Value.ToString();
}
}
String MyConnectionString = ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection MyConnection = new SqlConnection(MyConnectionString);
MyConnection.Open();
SqlDataAdapter MyDataAdapter = new SqlDataAdapter();
DataSet MyDataSet = new DataSet();
SqlCommand MySelectCommand = new SqlCommand();
MySelectCommand.CommandText = "[M_User_ShoppingCar]";
MySelectCommand.CommandType = CommandType.StoredProcedure;
MySelectCommand.Parameters.Add("@ProductID",ProductID);
SqlParameter Parameter=MySelectCommand.Parameters.Add("@result",SqlDbType.VarChar,20);
Parameter.Direction=ParameterDirection.Output;
MySelectCommand.Connection = MyConnection;
MyDataAdapter.SelectCommand = MySelectCommand;
MyDataAdapter.Fill(MyDataSet,"M_User_ShoppingCar");
MyDataGrid.DataSource = MyDataSet.Tables["M_User_ShoppingCar"].DefaultView;
MyDataGrid.DataBind();
MyConnection.Close();
Response.Write(MySelectCommand.Parameters["@result"].Value.ToString());
}
存储过程:
CREATE proc M_User_ShoppingCar
@ProductID varchar(100),
@result varchar(20) output
as
select ProductID,ProductName,OldPrice,NewPrice from T_Products where ProductID in (@ProductID)
set @result = @ProductID
GO
问题:
当ProductID 只有一个值的时候(比如:1),datagrid显示正常;
当ProductID 大于一个值的时候(比日:1,2),datagrid显示失败,不报错,只有表头无记录集。
返回值result正确,ProductID 类型是varchar(50)。