错误提示: 长度不能小于0!!

jornchangzheng 2009-02-10 02:34:11
其中页面a中的this.textbox1.text可以输入参数 点击提交后传到另一个页面,传递的参数为“title like % this.textbox1.text %”,传到页面b中,页面b对字符串进行处理
int a = strwhere.IndexOf("%");
int b = strwhere.LastIndexOf("%");
guanjianzi = strwhere.Normalize().Substring(a + 1, b - a - 1);

问题是当我在页面a输入中文时,可以运行,
当我输入数字或字母时,却提示 我
“ 长度不能小于 0。
参数名: length ”
求高手帮忙。
...全文
1493 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
crinny 2011-05-23
  • 打赏
  • 举报
回复
我的也出现长度不能小于 0。 参数名: length
是多了一个空格的,
要不你也把多余的空格删掉试试哈
shumark 2009-02-10
  • 打赏
  • 举报
回复
guanjianzi = strwhere.Normalize().Substring(a + 1, b - a - 1);

这里的问题
niuniuhuang 2009-02-10
  • 打赏
  • 举报
回复
很有可能是类似这样的“%20123%”,得到的是“ 123%”
crazy_cowboy 2009-02-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hongqi162 的回复:]
字符传截取的时候截取长度不能小于0
[/Quote]
简单明了,顺路学习
blackmeit 2009-02-10
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
string strwhere = "title like %aaaaaaaa%";
int a = strwhere.IndexOf("%");
int b = strwhere.LastIndexOf("%");
string guanjianzi = strwhere.Normalize().Substring(a + 1, b - a - 18);

}


测试是没问题的,你调试下strwhere 值是什么? “%”不会也包含在你传入的字符串里吧?
空心兜兜 2009-02-10
  • 打赏
  • 举报
回复
ASP.NET似乎有控件....
hongqi162 2009-02-10
  • 打赏
  • 举报
回复
字符传截取的时候截取长度不能小于0
zpcoder 2009-02-10
  • 打赏
  • 举报
回复
先看这两个值是几多 a + 1, b - a - 1

你输入中文是因为在跳转时自动 HtmlEncode 了,就变长了,估计就够数了。按个不与中文/数字/字母有关
blackmeit 2009-02-10
  • 打赏
  • 举报
回复
sorry 看错了
blackmeit 2009-02-10
  • 打赏
  • 举报
回复
"title like '%"+ this.textbox1.text +"%'" 应该是这样
jornchangzheng 2009-02-10
  • 打赏
  • 举报
回复
title like % this.textbox1.text %”改为"title like %"+ this.textbox1.text +"%"
这个源 代码中是这样写的,在这里我为了省事,省略了
vlysses 2009-02-10
  • 打赏
  • 举报
回复
“title like % this.textbox1.text %”改为"title like %"+ this.textbox1.text +"%"
niuniuhuang 2009-02-10
  • 打赏
  • 举报
回复
你传的代码怎么写的?
shadowjl 2009-02-10
  • 打赏
  • 举报
回复
“title like % this.textbox1.text %”,
长度算错啦,%后面不要留空格
shadowjl 2009-02-10
  • 打赏
  • 举报
回复
public string Substring(
int startIndex,
int length
)


startIndex
类型:System..::.Int32

此实例中子字符串的起始字符位置(从零开始)。

length
类型:System..::.Int32

子字符串中的字符数。

返回值
类型:System..::.String

一个 String,它等于此实例中从 startIndex 开始的长度为 length 的子字符串,如果 startIndex 等于此实例的长度且 length 为零,则为 Empty。
qhq5152096 2009-02-10
  • 打赏
  • 举报
回复
b-a-1的值小于0了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧