关于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注入,还是得过滤,而且字段类型需要为字符型