请教如何用C#语言实现数据库系统通用查询功能

woheni2008523 2009-03-23 10:01:15
我目前在用VS2005(C#语言)开发一个数据库系统,后台数据库建立在Oracle数据库中,此系统包括一个主窗口,主窗口包含若干个子窗口。现在想实现系统的通用查询功能,即点击任意子窗口中工具栏上的“查询”按钮,则出现一查询界面(整个系统仅有这一个通用的查询界面),在查询界面上选择查询的关系(并且、或者)、字段名(子窗口界面显示的相应表字段的中文名)、条件(等于、包含、大于、小于等),输入查询值,然后点击确定按钮即可将查询的结果显示在原子窗口界面上的DataGridView里。
我见过有人用dephi语言实现了此功能,可我不懂dephi语言,而且目前在用C#开发。请大家帮忙想想办法,谢谢了!
...全文
270 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
woheni2008523 2009-04-02
  • 打赏
  • 举报
回复
谢谢windsea123了!大家继续支持呀,我知道给的分少了些,不过不够可以加的!
bluelight68 2009-03-27
  • 打赏
  • 举报
回复
楼上的很好!
windsea123 2009-03-27
  • 打赏
  • 举报
回复
通用查询窗体
显示中文名(数组)
中文名对应的字段(数组)
字段对应的类型(文本、数值、日期、选择、用户自定义数据)
using (UcQuery frm = new UcQuery())
{
frm.DisplayField = new string[] { "员工编号", "姓名","性别", "出生日期" };
frm.MappingField = new string[] { "ID", "Name", "Sex", "Birthday" };
frm.FieldType = new UserType[] { UserType.String, UserType.String, UserType.UserData,UserType.DateTime };
ArrayValue[] sexUserData = new ArrayValue[] { new ArrayValue("男", "0"), new ArrayValue("女", "1") };
frm.UserData = new List<ArrayValue[]>() { null, null, sexUserData, null };

.....................
// 返回查询条件
string queryString = frm.QueryString;
}
返回查询条件表达式。

woheni2008523 2009-03-27
  • 打赏
  • 举报
回复
是我没说清楚吗?大家快帮忙呀,我快愁死了!
woheni2008523 2009-03-27
  • 打赏
  • 举报
回复
怎么没人回答呢?哎,自己顶呀!
woheni2008523 2009-03-24
  • 打赏
  • 举报
回复
您好,是不是以前有做过通用查询呀,有的话能否发一个例子过来参考一下,谢谢!
duwei1116 2009-03-23
  • 打赏
  • 举报
回复
很简单啊,先连接数据库,然后绑定到DataGridView上。至于说根据条件查询,你可以写一个方法,然后根据弹出窗体上输入的内容改变查询语句。
oracle 连接: OleDbConnection oraconnect = new OleDbConnection("Provider=MSDAORA;DSN=ora90;Data Source=ora90;User ID=system;Password =manager");
绑定dataGridView:
private void DataBindDataGrid()
{
try
{
OleDbDataAdapter adp = new OleDbDataAdapter(sql, oraconnect);
DataSet moneyds = new DataSet();
adp.Fill(moneyds, "Addje");
dataGridView1.DataSource = moneyds.Tables[0].DefaultView;
}

catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
然后在查询的按钮事件下判断sql的写法,调用DataBindDataGrid():
private void button4_Click(object sender, EventArgs e)
{
DataBindDataGrid();
}
heyu52 2009-03-23
  • 打赏
  • 举报
回复
所有的子窗体都继承于同一个form,不就可以吗

111,126

社区成员

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

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

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