コード例 #1
0
        private void lvDataSourceObjects_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            CheckForInputSufficiency();

            if (lvDataSourceObjects.SelectedItems.Count <= 0)
            {
                return;
            }

            if (selectedDataSource is IDbDriver)
            {
                IDbDriver     dbDriver  = selectedDataSource as IDbDriver;
                DataTable     dt        = dbDriver.GetTopTwoTable(lvDataSourceObjects.SelectedItems[0].Text);
                List <string> childCols = new List <string>();
                foreach (DataColumn dc in dt.Columns)
                {
                    childCols.Add(dc.ColumnName);
                }
                childCols.Sort();
                cmbChildKey.DataSource = childCols;
                SelectedItemType       = Dialogs.SelectedItemType.Table;
            }
            else if (selectedDataSource is Project)
            {
                Project       project   = selectedDataSource as Project;
                string        viewName  = lvDataSourceObjects.SelectedItems[0].Text;
                List <string> childCols = new List <string>();

                if (project.Views.Contains(viewName) && lvDataSourceObjects.SelectedItems[0].Group.ToString().ToLowerInvariant().Equals("epi info forms"))
                {
                    foreach (Epi.Fields.Field field in project.Views[viewName].Fields.DataFields)
                    {
                        childCols.Add(field.Name);
                    }
                    childCols.Sort();
                    cmbChildKey.DataSource = childCols;
                    SelectedItemType       = Dialogs.SelectedItemType.Form;
                }
                else if (lvDataSourceObjects.SelectedItems[0].Group.ToString().ToLowerInvariant().Equals("tables"))
                {
                    IDbDriver dbDriver = project.CollectedData.GetDbDriver();

                    DataTable dt = dbDriver.GetTopTwoTable(lvDataSourceObjects.SelectedItems[0].Text);

                    foreach (DataColumn dc in dt.Columns)
                    {
                        childCols.Add(dc.ColumnName);
                    }
                    childCols.Sort();
                    cmbChildKey.DataSource = childCols;
                    SelectedItemType       = Dialogs.SelectedItemType.Table;
                }
            }
        }