[英]C# Session Variables
我试图将多个会话变量传递给多个ASP页面。 但是,只有最后的ImageID和Extention值会传递到asp页中。 我需要
int key = Convert.ToInt32(StockSummary.SelectedRow.Cells[6].Text);
int index = 1;
try
{
transportFbConn.Open();
if (transportFbConn.State == ConnectionState.Closed)
{
transportFbConn.Open();
}
var sqlquerry = String.Format("select image_key,File_EXT from IMAGE_LIST where SOURCE_PK = {0}", key);
transportFbCommand = new FbCommand(sqlquerry, transportFbConn);
transportFbReader = transportFbCommand.ExecuteReader();
if (transportFbReader.HasRows)
{
while (transportFbReader.Read())
{
ImageID = transportFbReader.GetString(0);
extention = transportFbReader.GetString(1);
//Open PDF:
if (ImageID != "")
{
Session.Add("IMGID", ImageID);
Session.Add("Ext", extention);
Response.Write(string.Format("<script>window.open('{0}','_blank');</script>", "Trace"+index+".aspx"));
}
else
{
this.ErrorLabel.Text = "No Trace Information found for Part Number : " + this.TextTextBox.Text;
}
index++;
}
}
我尝试了arraylist,但是得到了对象null引用:
int key = Convert.ToInt32(StockSummary.SelectedRow.Cells[6].Text);
int index = 1;
int arrayindex = 0;
ArrayList imageid = new ArrayList();
ArrayList extention = new ArrayList();
try
{
transportFbConn.Open();
if (transportFbConn.State == ConnectionState.Closed)
{
transportFbConn.Open();
}
var sqlquerry = String.Format("select image_key,File_EXT from IMAGE_LIST where SOURCE_PK = {0}", key);
transportFbCommand = new FbCommand(sqlquerry, transportFbConn);
transportFbReader = transportFbCommand.ExecuteReader();
if (transportFbReader.HasRows)
{
while (transportFbReader.Read())
{
imageid.Insert(arrayindex, transportFbReader.GetString(0));
extention.Insert(arrayindex, transportFbReader.GetString(1));
//Open PDF:
if (ImageID[arrayindex].ToString() != "")
{
Session.Add("IMGID", ImageID[arrayindex]);
Session.Add("Ext", extention[arrayindex]);
Response.Write(string.Format("<script>window.open('{0}','_blank');</script>", "Trace"+index+".aspx"));
}
else
{
this.ErrorLabel.Text = "No Trace Information found for Part Number : " + this.TextTextBox.Text;
}
index++;
arrayindex++;
}
}
如果存在具有相同键值的会话变量,它将被覆盖。 因此,您总是用最新的值更新相同的密钥。
您应该在会话中放置ImageId列表,而不要放置单个图像,因为您只能有一个由相同键表示的对象。 基本上,每次循环都会覆盖它。
最好创建一个将所有键和值存储在temp变量中的数组,然后将其存储在会话中。 因为使用相同的键会覆盖值
ArrayList ar_IMGID = new ArrayList();
ArrayList ar_Ext = new ArrayList();
while (transportFbReader.Read())
{
ImageID = transportFbReader.GetString(0);
extention = transportFbReader.GetString(1);
//Open PDF:
if (ImageID != "")
{
ar_IMGID.Add(ImageID);
ar_Ext.Add(extention);
}
}
Session.Add("IMGID", ar_ImageID);
Session.Add("Ext", ar_Ext);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.