2 qq 36196843 qq_36196843 于 2017.09.05 09:54 提问

asp.net网页之间传值之后,查询语句失败

直接给变量赋值的话,本网页下的查询语句能正确运行
但是从登陆页面传值到该网页下就会报错,说sql语句未正确结束
public DataSet ExecSQL(string queryString, string connType)//创建了一个数据缓存
{
DataSet ds = new DataSet();
ConnectionStringSettings settings;
settings = ConfigurationManager.ConnectionStrings[connType];

   if (connType == "oracleconn" || connType == "ComCalConn" || connType == "MajorTraceConn" || connType == "CRM" || connType == "FSALARY" || connType == "REINS")
        {
            OracleConnection conn = new OracleConnection(settings.ConnectionString);
            conn.Open();
            OracleCommand command = new OracleCommand(queryString, conn);
            OracleDataAdapter adapter = new OracleDataAdapter(command);
            adapter.Fill(ds);
            conn.Close();
        }
                    错误指向adapter.fill(ds)

哪位大佬能给解答一下嘛,非常感谢

1个回答

showbo
showbo   Ds   Rxr 2017.09.05 10:02

自己Response.Write打印queryString变量值看sql是什么不就清楚了肯定是参数丢失了什么导致sql语句出错了

 public DataSet ExecSQL(string queryString, string connType)//创建了一个数据缓存
{
Response.Write(queryString);
Response.End();
///....
showbo
showbo 回复百鬼夜煞行: 你确认打印出来的正确的?要在ExecSQL这个方法体内打印,不要再其他地方,其他地方不一定是实际执行的sql语句。注意变量作用域
3 个月之前 回复
qq_36196843
qq_36196843 这个语句我是已经写好了的, if (authorizedComcode == "42000000") { queryClaimComcode = "select comname,comcode from cd_com_claim where 1 = 1 and comcode like '%0040'";//where 1=1是为了避免where后面直接跟着and导致语法错误,为了动态sql中连接and条件,湖南省那边为9835 } else { queryClaimComcode = "select comname,comcode from cd_com_claim " + "where 1 = 1 and comcode like '%0040' and comcode = '" + authorizedComcode + "' order by comcode"; }
3 个月之前 回复
qq_36196843
qq_36196843 哇,真的快爆炸了,这到底是什么问题啊,大佬能不能和我讨论一下
3 个月之前 回复
qq_36196843
qq_36196843 我刚刚打印了,参数确实传递过来了,sql语句也是对的,我在本页面直接给变量赋值的话sql语句运行是正常的
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片