紧急求助:用C#开发通用查询模块时怎样实现数据库中不同数据类型的查询

woheni2008523 2009-04-20 09:51:11
我在用vs2005C#语言开发一管理系统,在开发通用查询系统时,想实现动态查询Oracle数据库中不同的字段,但是字段的类型各不相同,于是我想到用以下的方法实现: if (FieldType1 == "VARCHAR2")
{
conditionValue1 = "'%" + textBox1.Text.Trim() + "%'";
}
else if (FieldType1 == "NUMBER")
{
conditionValue1 = textBox1.Text.Trim();
}
else if (FieldType1 == "DATE")
{
conditionValue1 = textBox1.Text;
}
if (textBox1.Text != "")
{
if (checkBox_升序1.Checked)
{
order1 = "order by "+ FieldName1+" asc";
}
if (checkBox_降序1.Checked)
{
order1 = "order by " + FieldName1 + " desc";
}
sql = "where " + FieldName1 + " " + comparel1 + " " + conditionValue1+ " "+order1+"";

}
if ((textBox1.Text != "") && (textBox2.Text != ""))
{
if ((checkBox_升序1.Checked) && (checkBox_升序2.Checked))
{
order2 = "order by " + FieldName1 + "asc ," + FieldName2 + " asc ";
}
if ((checkBox_降序1.Checked) && (checkBox_升序2.Checked))
{
order2 = "order by " + FieldName1 + " desc," + FieldName2 + " asc";
}
if ((checkBox_降序2.Checked) && (checkBox_升序1.Checked))
{
order2 = "order by " + FieldName2 + " desc," + FieldName1 + " asc";
}
if ((checkBox_降序2.Checked) && (checkBox_降序1.Checked))
{
order2 = "order by " + FieldName2 + " desc," + FieldName1 + "desc";
}

sql = "where " + FieldName1 + " " + comparel1 + "" + conditionValue1 + "" + logic1 + " " + FieldName2 + " " + comparel2 + "" + conditionValue2 + "" + order2 + "";
}
可是这样执行的结果出现了以下问题:
1.FieldName1 和 FieldName2 都是Number类型时出错ora-01722:无效数字或者ora-00920:无效的关系运算符这两个错误;
2.FieldName1 和 FieldName2 的类型是DATE时输入数据库中存在的数据,查询的结果却显示无!
请各位高手们帮忙想想办法,不胜感激!
...全文
279 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
woheni2008523 2009-04-21
  • 打赏
  • 举报
回复
顶呀,我自己回头再琢磨琢磨,不过大家要是有更具体的解决方法,欢迎分享呀!谢谢了!
ztmdsbt 2009-04-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]
通过LIst <T>泛型添加类型,循环遍历构建SQL语句
[/Quote]
/.
tang_fu 2009-04-20
  • 打赏
  • 举报
回复
通过LIst <T>泛型添加类型,循环遍历构建SQL语句
tabbycat 2009-04-20
  • 打赏
  • 举报
回复
你写一个SqlBuilder类来实现拼接SQL的功能
做的好一点的话,可以加上输入数据验证

最后都是得到一条SQL
woheni2008523 2009-04-20
  • 打赏
  • 举报
回复
我不是说不清楚,只是不是很具体,我还是不清楚应该怎么解决,谢谢了!
woheni2008523 2009-04-20
  • 打赏
  • 举报
回复
请说的清楚些,我是个新手!谢谢了
wuyq11 2009-04-20
  • 打赏
  • 举报
回复
通过LIst<T>泛型添加类型,循环遍历构建SQL语句
  • 打赏
  • 举报
回复
虽然数据库里面的数据不一样 但是你在输入到TextBox的时候都是string类型的

111,126

社区成员

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

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

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