运算符“==”无法应用于“short”和“string”类型的操作数(急)
private void bing(){
DataClassesDataContext db = new DataClassesDataContext();
DropDownList1.DataSource = from q in db.Course
select q;
DropDownList1.DataTextField = "CourseName";
DropDownList1.DataValueField = "CourseId";
DropDownList1.DataBind();
GridView1.DataSource = from o in db.Results
where o.CourseId == DropDownList1.SelectedValue
select o;
}
我想使用dropdownlist做一个可以查询每个课程对应的学生成绩信息,但是我这样写程序提示我:运算符“==”无法应用于“short”和“string”类型的操作数
红色段是问题所在,在线等如何解决此问题,谢谢!!! --------------------编程问答-------------------- where o.CourseId == (short)DropDownList1.SelectedValue --------------------编程问答-------------------- 错误 1 无法将类型“string”转换为“short” D:\homework\Default.aspx.cs 27 52 D:\homework\
--------------------编程问答-------------------- CourseId 该字段是short类型,而DropDownList1.SelectedValue
是string类型,类型不一致,所以出错,转换类型就好。
where o.CourseId == short.Parse(DropDownList1.SelectedValue);--------------------编程问答-------------------- from o in db.Results
where o.CourseId.ToString().Equals(DropDownList1.SelectedValue)
select o;
--------------------编程问答-------------------- Linq 我是不会。 --------------------编程问答--------------------
short sh = Convert.ToInt16(DropDownList1.SelectedValue);
GridView1.DataSource = from o in db.Results
where o.CourseId == sh
select o;
--------------------编程问答-------------------- 类型不一致的错误,
属于低级错误哦,
跟等号无关。
另外,
比较字符串用contains比较好。 --------------------编程问答-------------------- 上贴错误!!!
比较字符串用equals比较好。 --------------------编程问答-------------------- 转换类型就行了。基础问题。 --------------------编程问答-------------------- 随便哪边一个转换一下就可以了额.. --------------------编程问答-------------------- 4楼的做法就是正解。
建议将short转换为string再进行比较,将string转换成short虽然也行,但可能有时就会引发不可预料的结果。 --------------------编程问答--------------------
用Equals即可 --------------------编程问答-------------------- where o.CourseId == short.Parse(DropDownList1.SelectedValue); --------------------编程问答-------------------- 按理说把dropdownlist的values值转换成short类型就不会出错了,你看一下你dropdownlist的value值绑定的是"数字"还是"文本"如果是文本肯定转换不了啊~~~
--------------------编程问答-------------------- 楼上都OK,类型问题 --------------------编程问答-------------------- 嗯,就是类型不匹配问题,和==无关
--------------------编程问答-------------------- 都告诉你类型不匹配了还不强制转化一下呢 --------------------编程问答-------------------- 要么强制转换下,要么更改数据库CourseId 字段性质 改为string
强转的方法 o.CourseId == (short)DropDownList1.SelectedValue
o.CourseId == short.Parse(DropDownList1.SelectedValue) --------------------编程问答-------------------- linq学习中! --------------------编程问答-------------------- 强制转换一下 --------------------编程问答-------------------- from o in db.Results
where o.CourseId.ToString()==DropDownList1.SelectedValue.ToString()
select o;
补充:.NET技术 , LINQ