Ejemplo n.º 1
0
        /// <summary>
        /// Writes the content of the view page.
        /// </summary>
        /// <param name="writer">The writer.</param>
        /// <param name="entityName">Name of the entity.</param>
        private void WriteViewPageContent(StreamWriter writer, DatabaseColumn[] info, string entityName, string namespaceName)
        {
            writer.WriteLine("<table width=" + "\"" + "100%" + "\"" + ">");

            writer.WriteLine("<tr>");
            writer.WriteLine("<td align='center'>");
//            writer.WriteLine("<asp:Label ID='labelTitle' runat='server' Text=" + "\"" + entityName + "\"" + "/>");

            writer.WriteLine("<h3>" + entityName + "</h3>");

            writer.WriteLine("</td>");
            writer.WriteLine("</tr>");


            writer.WriteLine(" <tr>");
            writer.WriteLine("      <td align=" + "\"" + "center" + "\"" + ">");

            writer.WriteLine(" <asp:GridView   OnRowCommand='gridView_RowCommand' ID='gridView' runat='server' AllowSorting='True' AllowPaging='True' AutoGenerateColumns='False' DataSourceId='objectDataSource" + entityName + "'>");


            writer.WriteLine("<Columns>");


            bool           generateLink     = false;
            DatabaseColumn primaryKeyColumn = null;

            for (int i = 0; i < info.Length; i++)
            {
                if (info[i].isPrimaryKey)
                {
                    primaryKeyColumn = info[i];
                    continue;
                }

                if (primaryKeyColumn == null)
                {
                    throw new ArgumentException("No primary key found");
                }


                if (generateLink == false)
                {
                    writer.WriteLine("<asp:TemplateField ItemStyle-HorizontalAlign='Left'>");


                    //generate delete button
                    writer.WriteLine("<ItemTemplate>");
                    writer.WriteLine("  <asp:LinkButton CommandArgument='<%# DataBinder.Eval(Container.DataItem, " + "\"" + primaryKeyColumn.Name + "\"" + ") %>'");
                    writer.WriteLine("   CommandName='linkDelete' runat='server' Text='Delete' ></asp:LinkButton>");
                    writer.WriteLine("</ItemTemplate>");

                    writer.WriteLine("</asp:TemplateField>");


                    writer.WriteLine("<asp:TemplateField ItemStyle-HorizontalAlign='Left' HeaderText='" + info[i].Name + "' SortExpression='" + info[i].Name + "'>");


                    writer.WriteLine("<ItemTemplate>");
                    writer.WriteLine("  <asp:LinkButton CommandArgument='<%# DataBinder.Eval(Container.DataItem, " + "\"" + primaryKeyColumn.Name + "\"" + ") %>'");
                    writer.WriteLine("   CommandName='linkSelect' runat='server' Text='<%# DataBinder.Eval(Container.DataItem, " + "\"" + info[i].Name + "\"" + ") %>' ></asp:LinkButton>");
                    writer.WriteLine("</ItemTemplate>");
                    writer.WriteLine("</asp:TemplateField>");



                    generateLink = true;
                }
                else
                {
                    //generate bound columns
                    writer.WriteLine("<asp:BoundField DataField='" + info[i].Name + "' HeaderText='" + info[i].Name + "' SortExpression='" + info[i].Name + "' ItemStyle-HorizontalAlign='Center' />");
                }
            }

            writer.WriteLine("</Columns>");

            writer.WriteLine(" </asp:GridView>");

            writer.WriteLine(" <asp:ObjectDataSource ID='objectDataSource" + entityName + "' runat='server' TypeName='" + namespaceName + ".Presenters." + entityName + "ViewPresenter" + "' SelectMethod='Get" + entityName + "'></asp:ObjectDataSource>");

            writer.WriteLine("");
            writer.WriteLine("     </td>");
            writer.WriteLine("</tr>");

            writer.WriteLine("<tr>");
            writer.WriteLine("<td align='center'>");
            writer.WriteLine("<br/>");
            writer.WriteLine("<br/>");
            writer.WriteLine("<asp:Button runat='server' OnClick='buttonNew_Click' ID='buttonNew' Text='New' />");
            writer.WriteLine("</td>");
            writer.WriteLine("</tr>");

            //end page header here
            writer.WriteLine("</table>");
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets the column info.
        /// </summary>
        /// <param name="tableName">Name of the table.</param>
        /// <param name="connectionString">The connection string.</param>
        /// <returns>Array of DatabaseColumn</returns>
        public DatabaseColumn[] GetColumnInfo(string tableName, string connectionString)
        {
            OleDbConnection ocon  = null;
            OleDbCommand    ocmd  = null;
            IDataReader     iread = null;

            DatabaseColumn[] info = null;

            try
            {
                ocon = new OleDbConnection(connectionString);

                ocmd             = new OleDbCommand();
                ocmd.CommandText = "SELECT * FROM [" + tableName + "]";
                ocmd.Connection  = ocon;

                ocon.Open();

                //DataTable result2 = ocon.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, tableName, null });
                iread = ocmd.ExecuteReader(CommandBehavior.SchemaOnly);

                DataTable dt = iread.GetSchemaTable();
                iread.Close();

                info = new DatabaseColumn[dt.Rows.Count];

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    info[i] = new DatabaseColumn(dt.Rows[i]["ColumnName"].ToString(), dt.Rows[i]["DataType"].ToString(), false, false, Convert.ToBoolean(dt.Rows[i]["IsAutoincrement"]), 0);
                }
                iread.Close();

                //get the primary key now
                DataTable result = ocon.GetOleDbSchemaTable(OleDbSchemaGuid.Primary_Keys, new object[] { null, null, tableName });

                string pkName = string.Empty;
                for (int i = 0; i < result.Rows.Count; i++)
                {
                    pkName = result.Rows[i]["Column_Name"].ToString();

                    for (int j = 0; j < info.Length; j++)
                    {
                        if (info[j].Name == pkName)
                        {
                            info[j].isPrimaryKey = true;
                            break;
                        }
                    }
                }


                return(info);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (ocon != null && ocon.State != ConnectionState.Closed)
                {
                    ocon.Close();
                }

                if (iread != null && !iread.IsClosed)
                {
                    iread.Close();
                }
            }
        }
Ejemplo n.º 3
0
        public DatabaseColumn[] GetColumnInfo(string tableName, string connectionString)
        {
            #region
            //            NpgsqlConnection con = null;
//            NpgsqlCommand cmd = null;
//            IDataReader reader = null;
//            NpgsqlDataAdapter adapter = null;
//            DataSet ds = null;

//            try
//            {
//                con = new NpgsqlConnection(connectionString);
//                cmd = new NpgsqlCommand();
//                adapter = new NpgsqlDataAdapter();
//                ds = new DataSet();
//                cmd.Connection = con;

//                con.Open();
////                cmd.CommandText = " select a.attname as field, t.typname as type, a.attlen as typesize, a.atttypmod as fieldsize, a.attnotnull as notnull, a.atthasdef as hasdefault, d.adsrc as default  from pg_attribute a   inner join pg_type t on a.atttypid = t.oid  inner join pg_class c on a.attrelid = c.oid left join pg_attrdef d on c.oid = d.oid and a.attnum = d.adnum  where a.attnum > 0 and a.attisdropped = 'f' and c.relname = '" + tableName + "'";


//                cmd.CommandText = "SELECT * FROM " + tableName;

//                DataTable dtg = reader.GetSchemaTable();


//                reader = cmd.ExecuteReader(CommandBehavior.SchemaOnly);

//                while (reader.Read())
//                {
//                    DataTable dt = reader.GetSchemaTable();

//                }


//                //adapter.SelectCommand = cmd;
//                //adapter.Fill(ds);


//                return null;

//            }
//            catch
//            {
//                throw;
//            }
//            finally
//            {

//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }


            //            }
            #endregion

            OdbcConnection   con     = null;
            OdbcCommand      cmd     = null;
            DataTable        dt      = null;
            DatabaseColumn[] columns = null;

            try
            {
                if (PostgreSqlSchemaLoader.listDataTypes == null)
                {
                    this.LoadDataTypesMapper(connectionString);
                }

                con            = new OdbcConnection(connectionString);
                cmd            = new OdbcCommand();
                cmd.Connection = con;

                con.Open();

                string[] a = { null, null, tableName };

                dt = con.GetSchema("Columns", a);

                columns = new DatabaseColumn[dt.Rows.Count];

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    columns[i]      = new DatabaseColumn();
                    columns[i].Name = dt.Rows[i][3].ToString();
                    columns[i].isAutoIncremented = (dt.Rows[i][5].ToString() == "0") ? false : true;
                    columns[i].columnDataType    = this.GetExternalType(dt.Rows[i][5].ToString());
                    //columns[i].isAutoIncremented =
                }

                return(columns);
            }
            catch
            {
                throw;
            }
            finally
            {
                if (con != null)
                {
                    con.Close();
                    con.Dispose();
                }

                if (dt != null)
                {
                    dt.Dispose();
                }
            }
        }