示例#1
0
        private void PopulateColumns()
        {
            if (this._cols == null)
            {
                this._cols = new RainstormStudios.Data.ColumnParamsCollection();
            }
            else
            {
                this._cols.Clear();
            }

            if (string.IsNullOrEmpty(this.pan02cboFlatSrcColDelim.Text) || string.IsNullOrEmpty(this.pan02cboFlatSrcRowDelim.Text) || !File.Exists(this.pan02txtFlatSrcFileName.Text))
            {
                return;
            }

            string[] pcs = null;
            switch (this.pan02drpFlatSrcFormat.SelectedIndex)
            {
            case 0:         // Delimited
                string
                    cDelim = string.Empty,
                    rDelim = string.Empty;
                switch (this.pan02cboFlatSrcColDelim.Text)
                {
                case "{CR}{LF}": cDelim = "\r\n"; break;

                case "{CR}": cDelim = "\r"; break;

                case "{LF}": cDelim = "\n"; break;

                case "Semicolon {;}": cDelim = "\n"; break;

                case "Colon {:}": cDelim = ":"; break;

                case "Comma {,}": cDelim = ","; break;

                case "Tab {t}": cDelim = "\t"; break;

                case "Vertical Bar {|}": cDelim = "|"; break;

                default: cDelim = this.pan02lblFlatSrcColDelim.Text; break;
                }
                switch (this.pan02cboFlatSrcRowDelim.Text)
                {
                case "{CR}{LF}": rDelim = "\r\n"; break;

                case "{CR}": rDelim = "\r"; break;

                case "{LF}": rDelim = "\n"; break;

                case "Semicolon {;}": rDelim = "\n"; break;

                case "Colon {:}": rDelim = ":"; break;

                case "Comma {,}": rDelim = ","; break;

                case "Tab {t}": rDelim = "\t"; break;

                case "Vertical Bar {|}": rDelim = "|"; break;

                default: rDelim = this.pan02lblFlatSrcColDelim.Text; break;
                }

                string sTxtQual = this.pan02txtFlatSrcTextQual.Text;
                if (sTxtQual.ToLower() == "<none>")
                {
                    sTxtQual = string.Empty;
                }

                using (FileStream fs = new FileStream(this.pan02txtFlatSrcFileName.Text, FileMode.Open, FileAccess.Read))
                    using (RainstormStudios.IO.DelimitedTextReader rdr = new RainstormStudios.IO.DelimitedTextReader(fs, rDelim, cDelim, sTxtQual, Encoding.Default))
                        for (int i = 0; i < this.pan02numFlatSrc.Value + 1; i++)
                        {
                            pcs = rdr.ReadRow();
                        }
                break;

            case 1:         // Fixed width
                break;

            case 2:         // Ragged right
                break;
            }

            if (pcs == null)
            {
                return;
            }

            // If the first row doesn't contain the column names, then
            //   just populate the array with generic "ColumnXXX" values.
            if (!this.pan02chkFlatSrcColNameFirstRow.Checked)
            {
                for (int i = 0; i < pcs.Length; i++)
                {
                    pcs[i] = "Column" + i.ToString().PadLeft(pcs.Length.ToString().Length, '0');
                }
            }

            // Create the entries in the ColumnParams collection.
            for (int i = 0; i < pcs.Length; i++)
            {
                this._cols.Add(new RainstormStudios.Data.ColumnParams(pcs[i], typeof(System.String), 0, i));
            }

            this.pan02lstFlatSrcColPrev.BeginUpdate();
            this.pan02lstFlatSrcColPrev.Items.Clear();
            for (int c = 0; c < this._cols.Count; c++)
            {
                this.pan02lstFlatSrcColPrev.Items.Add(new ListViewItem(new string[] { this._cols[c].ColumnName, this._cols[c].DataType.ToString(), this._cols[c].FieldSize.ToString() }));
            }
            this.pan02lstFlatSrcColPrev.EndUpdate();
        }
示例#2
0
        private void PopulatePreivew()
        {
            if (!File.Exists(this.pan02txtFlatSrcFileName.Text))
            {
                return;
            }

            using (DataTable dt = new DataTable())
            {
                foreach (RainstormStudios.Data.ColumnParams cPrms in this._cols)
                {
                    dt.Columns.Add(new DataColumn(cPrms.ColumnName));
                }

                string colDelim = "";
                switch (this.pan02cboFlatSrcColDelim.Text)
                {
                case "{CR}{LF}": colDelim = "\r\n"; break;

                case "{CR}": colDelim = "\r"; break;

                case "{LF}": colDelim = "\n"; break;

                case "Semicolon {;}": colDelim = "\n"; break;

                case "Colon {:}": colDelim = ":"; break;

                case "Comma {,}": colDelim = ","; break;

                case "Tab {t}": colDelim = "\t"; break;

                case "Vertical Bar {|}": colDelim = "|"; break;

                default: colDelim = this.pan02lblFlatSrcColDelim.Text; break;
                }

                string rowDelim = "";
                switch (this.pan02cboFlatSrcRowDelim.Text)
                {
                case "{CR}{LF}": rowDelim = "\r\n"; break;

                case "{CR}": rowDelim = "\r"; break;

                case "{LF}": rowDelim = "\n"; break;

                case "Semicolon {;}": rowDelim = "\n"; break;

                case "Colon {:}": rowDelim = ":"; break;

                case "Comma {,}": rowDelim = ","; break;

                case "Tab {t}": rowDelim = "\t"; break;

                case "Vertical Bar {|}": rowDelim = "|"; break;

                default: rowDelim = this.pan02lblFlatSrcRowDelim.Text; break;
                }

                using (RainstormStudios.IO.DelimitedTextReader dtRdr = new RainstormStudios.IO.DelimitedTextReader(this.pan02txtFlatSrcFileName.Text, rowDelim, colDelim, this.pan02txtFlatSrcTextQual.Text, Encoding.Default))
                {
                    int i     = 0,
                        stNum = (int)this.pan02panFlatSrcPreviewNumRowSkip.Value + ((this.pan02chkFlatSrcColNameFirstRow.Checked) ? 1 : 0);
                    for (i = 0; i < 99 + stNum; i++)
                    {
                        DataRow dr = dt.NewRow();
                        dr.ItemArray = dtRdr.ReadRow();
                        if (i > stNum)
                        {
                            dt.Rows.Add(dr);
                        }
                    }
                    this.pan02lblFlatSrcPrevRowNums.Text = string.Format("Preview Rows {0} - {1}", stNum, i);
                }

                this.pan02panFlatSrcPreviewDg.DataSource = dt;
            }
        }
示例#3
0
        private void PopulateColumns()
        {
            if (this._cols == null)
            {
                this._cols = new ColumnParamsCollection();
            }
            else
            {
                this._cols.Clear();
            }

            if (this.TargetDirection == DataTargetDirection.Source)
            {
                if (this.DataTargetType == DataTargetType.Flat_File)
                {
                    if (string.IsNullOrEmpty(this.pan02cboFlatSrcColDelim.Text) || string.IsNullOrEmpty(this.pan02cboFlatSrcRowDelim.Text) || !File.Exists(this.pan02txtFlatSrcFileName.Text))
                    {
                        return;
                    }

                    string[] pcs = null;
                    switch (this.pan02drpFlatSrcFormat.SelectedIndex)
                    {
                    case 0:         // Delimited
                        string
                            cDelim = string.Empty,
                            rDelim = string.Empty;
                        switch (this.pan02cboFlatSrcColDelim.Text)
                        {
                        case "{CR}{LF}": cDelim = "\r\n"; break;

                        case "{CR}": cDelim = "\r"; break;

                        case "{LF}": cDelim = "\n"; break;

                        case "Semicolon {;}": cDelim = "\n"; break;

                        case "Colon {:}": cDelim = ":"; break;

                        case "Comma {,}": cDelim = ","; break;

                        case "Tab {t}": cDelim = "\t"; break;

                        case "Vertical Bar {|}": cDelim = "|"; break;

                        default: cDelim = this.pan02lblFlatSrcColDelim.Text; break;
                        }
                        switch (this.pan02cboFlatSrcRowDelim.Text)
                        {
                        case "{CR}{LF}": rDelim = "\r\n"; break;

                        case "{CR}": rDelim = "\r"; break;

                        case "{LF}": rDelim = "\n"; break;

                        case "Semicolon {;}": rDelim = "\n"; break;

                        case "Colon {:}": rDelim = ":"; break;

                        case "Comma {,}": rDelim = ","; break;

                        case "Tab {t}": rDelim = "\t"; break;

                        case "Vertical Bar {|}": rDelim = "|"; break;

                        default: rDelim = this.pan02lblFlatSrcColDelim.Text; break;
                        }

                        string sTxtQual = this.pan02txtFlatSrcTextQual.Text;
                        if (sTxtQual.ToLower() == "<none>")
                        {
                            sTxtQual = string.Empty;
                        }

                        using (FileStream fs = new FileStream(this.pan02txtFlatSrcFileName.Text, FileMode.Open, FileAccess.Read))
                            using (RainstormStudios.IO.DelimitedTextReader rdr = new RainstormStudios.IO.DelimitedTextReader(fs, rDelim, cDelim, sTxtQual, Encoding.Default))
                                for (int i = 0; i < this.pan02numFlatSrc.Value + 1; i++)
                                {
                                    pcs = rdr.ReadRow();
                                }
                        break;

                    case 1:         // Fixed width
                        break;

                    case 2:         // Ragged right
                        break;
                    }

                    // If the first row doesn't contain the column names, then
                    //   just populate the array with generic "ColumnXXX" values.
                    if (!this.pan02chkFlatSrcColNameFirstRow.Checked)
                    {
                        for (int i = 0; i < pcs.Length; i++)
                        {
                            pcs[i] = "Column" + i.ToString().PadLeft(pcs.Length.ToString().Length, '0');
                        }
                    }

                    // Create the entries in the ColumnParams collection.
                    for (int i = 0; i < pcs.Length; i++)
                    {
                        this._cols.Add(new RainstormStudios.Data.ColumnParams(pcs[i], typeof(System.String), 0, i));
                    }

                    if (pcs == null)
                    {
                        return;
                    }
                }
                else
                {
                    string sqlQry = "SELECT TOP 1 * FROM " + this.pan02drpSqlDatabaseList.Text;
                    using (rsDb db = rsDb.GetDbObject(AdoProviderType.Auto, this.GetConnectionString(), sqlQry))
                    {
                        using (DataSet ds = db.GetData())
                        {
                            if (ds.Tables.Count > 0)
                            {
                                foreach (DataColumn dc in ds.Tables[0].Columns)
                                {
                                    this._cols.Add(new ColumnParams(dc.ColumnName, dc.DataType, dc.MaxLength, dc.Ordinal));
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                if (this.DataTargetType == DataTargetType.Flat_File && File.Exists(this.pan02txtFlatSrcFileName.Text))
                {
                }
                else if (this.DataTargetType == DataTargetType.SQL_Native_Client)
                {
                }
            }

            // If we're working with a flat data type, then populate the columns in the wizard.
            if (this.DataTargetType == DataTargetType.Flat_File)
            {
                this.pan02lstFlatSrcColPrev.BeginUpdate();
                this.pan02lstFlatSrcColPrev.Items.Clear();
                for (int c = 0; c < this._cols.Count; c++)
                {
                    this.pan02lstFlatSrcColPrev.Items.Add(new ListViewItem(new string[] { this._cols[c].ColumnName, this._cols[c].DataType.ToString(), this._cols[c].FieldSize.ToString() }));
                }
                this.pan02lstFlatSrcColPrev.EndUpdate();
            }
        }