还是有关查询问题求纠错

supduo 2011-04-23 07:24:01

private void button1_Click(object sender, EventArgs e)
{
string path = "";
try
{
path = filePath.Items[0].ToString();
}
catch (Exception ex)
{
}
DataTable DT = importExcelToDataSet(path, "Sheet1").Tables["[" + "Sheet1" + "$]"];
var q = from u in DT.AsEnumerable()
select u;
if (stuLevel.Text != "无限制")
{
q = q.Where(p => p.Field<string>("学生水平") == stuLevel.Text);
}
if (schLevel.Text != "无限制")
{
q = q.Where(p => p.Field<string>("学校等级") == schLevel.Text);
}
if (sex.Text != "无限制")
{
q = q.Where(p => p.Field<string>("学生性别") == sex.Text);
}
if (stuNum.Text != "无限制")
{
q = q.Where(p => p.Field<string>("学生人数") == stuNum.Text);
}
if (major.Text != "无限制")
{
q = q.Where(p => p.Field<string>("学生专业") == major.Text);
}
if (topic.Text != "无限制")
{
q = q.Where(p => p.Field<string>("话题类别") == topic.Text);
}
q.ToList();
dataGridView1.DataSource = q.CopyToDataTable();
}

数据源是excel,字段都已经改为文本类型,使用话题和专业约束做条件查询没有问题,可使用其他条件就出现报错无法将类型为“System.Double”的对象强制转换为类型“System.String”。
...全文
87 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jshzp 2011-04-23
  • 打赏
  • 举报
回复
都已经说了:数据类型的问题,想办法数字.tostring(),就行了
小case 2011-04-23
  • 打赏
  • 举报
回复
数字改为中文
System.Double”的对象强制转换为类型“System.String

这是很明显的联系了,EXCEL是数字, q = q.Where(p => p.Field<string>("话题类别") == topic.Text);string在这里就不对(话题类别那一列是数字?)

你搜索看下数据类型Double,String
和他们之间如何转换
supduo 2011-04-23
  • 打赏
  • 举报
回复
问题出在数据源上,将这些字段都由数字改为中文就可以显示出了。。。不清楚是什么原因。。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧