这可能是Session的问题,而不是ToString(),我不确定。
我有两个.aspx页面,我想将数据表中的IP地址从一个页面传递到另一个页面。当我这样做时,添加了我不想要的空格。代码的简单版本是:
首先.aspx页面
int num = DropDownList1.SelectedIndex;
DataView tempDV = SqlDataSource2.Select(DataSourceSelectArguments.Empty) as DataView;
Session["camera"] = tempDV.Table.Rows[num].ItemArray[2];
Response.Redirect("test.aspx");
test.aspx page
string ipCamAdd = Session["camera"].ToString();
TextBox1.Text = "http://" + ipCamAdd + "/jpg/image.jpg?resolution=320x240";
我要打印的是
http ://ipadd/jpg/image.jpg?resolution=320x240
但打印出来的是
http//ipaddress /jpg/image.jpg?resolution=320x240
我该如何解决这个问题?
另外,我问了这个问题,希望有人能告诉我为什么会这样。抱歉错误。
答案 0 :(得分:3)
试试这个:
string ipCamAdd = Session["camera"].Trim().ToString();
对于有效的关注,Session [“camera”]可以为null,在代码中添加如下函数
static string ToSafeString(string theVal) { string theAns; theAns = (theVal==null ? "" : theVal); return theAns; }
然后使用:
string ipCamAdd = Session [“camera”]。ToSafeString()。Trim();
答案 1 :(得分:2)
如果您只想摆脱空格,可以使用string.Replace
:
TextBox1.Text = "http://" + (ipCamAdd ?? "").Replace(" ", "") + "/jpg/image.jpg?resolution=320x240";
答案 2 :(得分:1)
在设置为会话之前修剪结果。
Session["camera"] = tempDV.Table.Rows[num].ItemArray[2].Trim();
似乎在SQL中,如果您将数据类型转换为char(*)
并重新输入数据,那么您的数据类型为varchar