当前位置:编程学习 > C#/ASP.NET >>

请教一个关于跳页传字符串的问题

这是我的方法
-----------------------
public DataSet getRolls(string str)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("select * from Rolls ");
            sb.Append(str);
            DataSet ds = d.getset(sb.ToString());
            return ds;
        }
------------------------
这是我拼字符串的代码
------------------------
try
        {
            StringBuilder SqlStr = new StringBuilder();
            SqlStr.Append(" where");
            if (KeyValue_JAH.Text == "")
            {
                throw new Exception("卷案号不能为空!");
            }
            else
            {
                SqlStr.Append(" JAH like '%" + KeyValue_JAH.Text + "%'");
                if (KeyValue_SSJK.SelectedValue != "0")
                {
                    SqlStr.Append(" and SSJK = '" + KeyValue_SSJK.SelectedValue + "'");
                }


。。。。。。。。。

if ((KeyValue_ZZRQ.Text != "") && (KeyValue_ZZRQ2.Text != ""))
                {
                    SqlStr.Append(" and ZZRQ >='" + KeyValue_ZZRQ.Text + "' and ZZRQ<='" + KeyValue_ZZRQ2.Text + "'");
                }
            }
            Response.Redirect("RollFilesManager.aspx?tiaojian=" + SqlStr.ToString(),false);

----------------------
现在用“112”这条数据来查询
语句拼出来是这样的
----------------------
select * from Rolls where JAH like '%112%'
(这里无误,断点能跟出来)

----------------------
但是用那个跳页语句传过去之后
“%11”这一小节就变成了一个向左的小黑三角????
----------------------
这是为什么?
怎么破?
求好心人指点 select string exception stringbuilder 数据 --------------------编程问答-------------------- 1. URL传值不安全,直接传SQL语句就更不可取
2. URL传值有长度限制
3. 你的问题是因为没有URL编码 解码导致的 --------------------编程问答-------------------- %11本来就是不可打印字符。
%25%31%31才表示%11 --------------------编程问答--------------------
引用 1 楼 q107770540 的回复:
1. URL传值不安全,直接传SQL语句就更不可取
2. URL传值有长度限制
3. 你的问题是因为没有URL编码 解码导致的



那应该怎么解决呢?有没有什么转码的方法? --------------------编程问答--------------------
引用 2 楼 caozhy 的回复:
%11本来就是不可打印字符。
%25%31%31才表示%11


知道得转移,关键是how to do it? --------------------编程问答-------------------- ("RollFilesManager.aspx?tiaojian=" + Server.UrlEncode( SqlStr.ToString()), --------------------编程问答--------------------
引用 3 楼 jioyou 的回复:
Quote: 引用 1 楼 q107770540 的回复:

1. URL传值不安全,直接传SQL语句就更不可取
2. URL传值有长度限制
3. 你的问题是因为没有URL编码 解码导致的



那应该怎么解决呢?有没有什么转码的方法?


不是告诉你做url编码么 httputility.urlencode --------------------编程问答-------------------- 搜噶搜噶,跟诸位学着东西了 --------------------编程问答--------------------
引用 2 楼 caozhy 的回复:
%11本来就是不可打印字符。
%25%31%31才表示%11


编码之后别忘解码
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,