“System.Data.SqlClient.SqlException”类型的未经处理的异常在 System.Data.dll 中发生
其他信息:在将varchar值'G101'转换成数据类型int时失败。usingSystem;usingSystem.Collections.Generic;usingS...
其他信息: 在将 varchar 值 'G101' 转换成数据类型 int 时失败。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace drom
{
public partial class FrDromquery : Form
{
public FrDromquery()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
dromquery.DataSource = DBHelper.query(string.Format(@"select dname 宿舍名字,dnaem 宿舍类型,dsum 实住人数,rno 应住人数,dromid 楼号,dstate 是否可用
from dromitory where dname='{0}' or dnaem='{0}' or dsum='{0}' or rno='{0}' or dromid='{0}' and dstate = '1'", querytext.Text));
}
}
} 展开
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace drom
{
public partial class FrDromquery : Form
{
public FrDromquery()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
dromquery.DataSource = DBHelper.query(string.Format(@"select dname 宿舍名字,dnaem 宿舍类型,dsum 实住人数,rno 应住人数,dromid 楼号,dstate 是否可用
from dromitory where dname='{0}' or dnaem='{0}' or dsum='{0}' or rno='{0}' or dromid='{0}' and dstate = '1'", querytext.Text));
}
}
} 展开
1个回答
展开全部
会不会是你输入的参数querytext.Text的值包含字母
而你这些判断的字段有数字类型
dsum='{0}' or rno='{0}' or dromid='{0}'
这3个我怀疑有字段类型的
在字段类型比较时,要把你输入的参数转换成数字进行比较,又因为你输入的参数值有字母,所以出现转换失败?
你把where改成(字符类型不需要cast):
where (dname='{0}' or dnaem='{0}' or cast(dsum as varchar(20))='{0}' or cast(rno as varchar(20))='{0}' or cast(dromid as as varchar(20))='{0}') and dstate = '1'
而你这些判断的字段有数字类型
dsum='{0}' or rno='{0}' or dromid='{0}'
这3个我怀疑有字段类型的
在字段类型比较时,要把你输入的参数转换成数字进行比较,又因为你输入的参数值有字母,所以出现转换失败?
你把where改成(字符类型不需要cast):
where (dname='{0}' or dnaem='{0}' or cast(dsum as varchar(20))='{0}' or cast(rno as varchar(20))='{0}' or cast(dromid as as varchar(20))='{0}') and dstate = '1'
追问
可以了,谢谢!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
您可能需要的服务
百度律临官方认证律师咨询
平均3分钟响应
|
问题解决率99%
|
24小时在线
立即免费咨询律师
11702人正在获得一对一解答
南京彩虹之旅3分钟前提交了问题
上海旋风骑士2分钟前提交了问题
福州梦中仙子3分钟前提交了问题