日期:2014-05-17  浏览次数:20462 次

关于SQL查找语句的问题
在文本框中输入,从数据库表中查找输入的内容。当输入数字串时,没有问题;但是,输入字母时,就会有问题,错误如附图。下面是代码: 
protected void Button1_Click(object sender, EventArgs e)
    {

        if (TextBox1.Text == "")
        {
            Response.Write("<script language=javascript >alert('请输入订单号!');window.navigate('./GM.aspx');</Script>");
            Response.End();
        }

        else
        {
            SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString);
            sqlcon.Open();
            string tex2 = string.Format("SELECT COUNT(*) FROM GPSinfo WHERE huowuID={0}", TextBox1.Text.Trim());
            SqlCommand myComand = new SqlCommand(tex2, sqlcon);
            int count = (int)myComand.ExecuteScalar();
            if (count <= 0)
            {
                Response.Write("<script language=javascript >alert('订单号有误!');window.navigate('./GM.aspx');</Script>");
                Response.End();
            }
            else
            {
                Response.Redirect("GM.aspx");
            }
        }
    }
sql textbox

------解决方案--------------------
字符串要加引号,你这个又不是int型,不加引号当然会报错
------解决方案--------------------
   string tex2 = string.Format("SELECT COUNT(*) FROM GPSinfo WHERE huowuID={0}", TextBox1.Text.Trim());
------解决方案--------------------
与数据类型不一样。

我估计你数据库huowuID的是int。所以TextBox1只能输入数字
------解决方案--------------------
你把语句复制下来,到查询分析器中执行一下就知道问题出在哪里呢
------解决方案--------------------
这种问题最好的办法就是将调试的SQL语句在Sql中执行一下,就知道问题出在哪了
------解决方案--------------------
这还要执行吗,他贴出来的图就看到错误了
------解决方案--------------------
有几种方法可以处理
1\在提交的时候做判断,设置只允许提交数字类型字符
2\WHERE huowuID='{0}'", 但这个不安全,容易被SQL注入,还是得过滤,而且字段类型需要为字符型