当前位置:编程学习 > C#/ASP.NET >>

运算符“==”无法应用于“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\


引用 1 楼 cj205 的回复:
where o.CourseId == (short)DropDownList1.SelectedValue
--------------------编程问答-------------------- 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比较好。 --------------------编程问答-------------------- 上贴错误!!!
引用 7 楼 foren_whb 的回复:
类型不一致的错误,
属于低级错误哦,
跟等号无关。

另外,
比较字符串用contains比较好。

比较字符串用equals比较好。 --------------------编程问答-------------------- 转换类型就行了。基础问题。 --------------------编程问答-------------------- 随便哪边一个转换一下就可以了额.. --------------------编程问答-------------------- 4楼的做法就是正解。
建议将short转换为string再进行比较,将string转换成short虽然也行,但可能有时就会引发不可预料的结果。 --------------------编程问答--------------------
引用 4 楼 wuyq11 的回复:
from o in db.Results
  where o.CourseId.ToString().Equals(DropDownList1.SelectedValue)
  select o;


用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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,