我的任務是編寫一個允許用戶運行臨時查詢的winforms c#應用程序。我在網上搜索並找到了很多可以購買的工具(EasyQuery),但是現在購買它是不可能的。編寫Winforms動態查詢工具
所以我想自己寫這個。此時,我創建了一個在運行時隨表格/列填充的樹視圖,並且我可以選擇用戶檢查的列。但現在我必須弄清楚如何動態地選擇他們已經選擇的表格。
部分表結構如下:
Table - Roles - PK = RoleId
RoleId
RoleName
Table - Center PK = CenterId/RoleId/Prefix
CenterId
RoleId
Prefix
Table - Employee - PK = EmployeeID
EmployeeId
Name
CenterId
Dept
Org
Table - Prof - PK = EmployeeId/Profile
EmployeeId
Profile
我有一個總能在各個領域中加入6張桌子,但由於用戶需要加入的飛行,我需要確定JOIN
當他們想要生成SQL時。在這一點上,我不知道最好的方式來產生這些JOINs
。
我甚至想過在數據庫中創建一個表,其中列出了每個表/列的JOINs
,然後我可以從那裏創建它,但我無所適從。
我自己也嘗試類似這樣的東西,但我不想開始就想錯了,如果有一個不同的方式建議:
private void GetJoins()
{
string joinList = string.Empty;
foreach (TreeNode tn in TablesTreeView.Nodes)
{
if (tn.Checked)
if (tn.Nodes.Count > 0) // this would be parent items only
{
foreach (TreeNode childNode in tn.Nodes)
{
// for first child checked
// check the next checked parent nodes for matching checked fields
// if next parent node has same field name checked then add the JOIN
}
}
}
}
這是否看起來是在正確的軌道上或者你可以提出另一種方式?
我知道這將是一個非常困難的任務,我甚至還沒有得到動態的WHERE
條款。我只是尋找建議在最佳方式創建JOINs
在臨時的基礎上。
你的建造成本真的低於1350美元? – 2012-03-11 19:56:01
目前,沒有預算購買外部產品。 – Taryn 2012-03-11 20:10:58