예제 #1
0
 public static string getTableDataWhole(string tableName)
 {
     string sql = string.Format("select * from [{0}]", tableName);
     DataBaseTable db = new DataBaseTable();
     db.setTableName(tableName);
     string[] names = db.getColumnNames();
     int length = names.Length;
     SqlDataReader s = executeQuery(sql);
     string table = "<table border=\"1\">";
     table += "<tr>";
     for (int i = 0; i < length; i++)
     {
         table += string.Format("<th>{0}</th>", names[i]);
     }
     table += "</tr>";
     if (s != null)
     {
         while (s.Read())
         {
             table += "<tr>\n";
             for (int i = 0; i < length; i++)
             {
                 table += string.Format("<td>{0}</td>", s.GetValue(i).ToString());
             }
             table += "<tr/>";
         }
     }//if
     table += "</table>";
     return table;
 }
예제 #2
0
        }//buildSql function
        private static string buildSql(List<string[]> conditions, string tableName)
        {
            DataBaseTable db = new DataBaseTable();
            db.setTableName(tableName);
            string[] names = db.getColumnNames();
            string[] types = getDataTypes(tableName);
            int length = conditions.Count;//names.Length;
            string sql = string.Format("SELECT * FROM [{0}] ", tableName);
            string text = "";
            string and = " ";
            int count = 0;
            for (int i = 0; i < length; i++)
            {
                if (types[i] == "text")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string contains = conditions.ElementAt(i)[1];
                    if (equals != "")
                    {
                        text += string.Format("{0} {1} like @{2}_equals ", and, names[i], names[i]);
                        count++;
                        and = " AND ";
                    }
                    else if (contains != "")
                    {
                        if (count < 1)
                        {
                            text += string.Format("{0} {1} like @{2}_contains ", and, names[i], names[i]);
                            and = " AND ";
                            count++;
                        }
                        else
                        {
                            text += string.Format("{0} {1} like @{2}_contains ", and, names[i], names[i]);
                        }
                    }
                }//if text
                else if (types[i] == "number")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string lessThen = conditions.ElementAt(i)[1];
                    string greaterThen = conditions.ElementAt(i)[2];
                    if (equals != "")
                    {
                        text += string.Format(" {0} {1} = @{2}_equals ", and, names[i], names[i]);
                        and = " AND ";
                        count++;
                    }
                    if (lessThen != "")
                    {
                        if (count > 0)
                            text += string.Format("{0}  {1} < @{2}_lessThen ", and, names[i], names[i]);
                        else
                        {
                            text += string.Format(" {0}< @{1}_lessThen ", names[i], names[i]);
                            and = " AND ";
                            count++;
                        }
                    }
                    if (greaterThen != "")
                    {
                        if (count > 0)
                            text += string.Format("{0} {1} > @{2}_greaterThen ", and, names[i], names[i]);
                        else
                        {
                            text += string.Format(" {0} > @{1}_greaterThen ", names[i], names[i]);
                            and = " AND ";
                            count++;
                        }
                    }
                }//number
                else if (types[i] == "date")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string lessThen = conditions.ElementAt(i)[1];
                    string greaterThen = conditions.ElementAt(i)[2];
                    if (equals != "")
                    {
                        text = string.Format(" {0} = @{1}_equals ", names[i], names[i]);
                        and = " AND ";
                        count++;
                    }
                    if (lessThen != "")
                    {
                        if (count > 0)
                            text += string.Format("{0}  {1} < @{2}_lessThen ", and, names[i], names[i]);
                        else
                        {
                            text += string.Format(" {0}< @{1}_lessThen ", names[i], names[i]);
                            and = " AND ";
                            count++;
                        }
                    }
                    if (greaterThen != "")
                    {
                        if (count > 0)
                            text += string.Format("{0} {1} > @{2}_greaterThen ", and, names[i], names[i]);
                        else
                        {
                            text += string.Format(" {0} > @{1}_greaterThen ", names[i], names[i]);
                            and = " AND ";
                            count++;
                        }
                    }
                }//date

            }//for
            if (text.Trim() != "")
            {
                sql += string.Format(" WHERE ({0}) ", text);
            }

            return sql;
        }//buildSql function
예제 #3
0
        public static string getFilteredTableData(List<string[]> conditions, string tableName)
        {
            DataBaseTable db = new DataBaseTable();
            db.setTableName(tableName);
            string[] names = db.getColumnNames();
            string[] types = getDataTypes(tableName);
            int length = names.Length;

            string query = buildSql(conditions, tableName);

            SqlCommand Sqlcommand = new SqlCommand(query, con);

            for (int i = 0; i < length; i++)
            {
                if (types[i] == "text")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string contains = conditions.ElementAt(i)[1];
                    if (equals != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_equals", names[i]), string.Format("{0}", equals));
                    }
                    else if (contains != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_contains", names[i]), string.Format("%{0}%", contains));
                    }
                }//if text
                else if (types[i] == "number")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string lessThen = conditions.ElementAt(i)[1];
                    string greaterThen = conditions.ElementAt(i)[2];
                    if (equals != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_equals", names[i]), equals);
                    }
                    if (lessThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_lessThen", names[i]), lessThen);
                    }
                    if (greaterThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_greaterThen", names[i]), greaterThen);
                    }
                }//number
                else if (types[i] == "date")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string lessThen = conditions.ElementAt(i)[1];
                    string greaterThen = conditions.ElementAt(i)[2];
                    if (equals != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_equals", names[i]), string.Format("{0}", equals));
                    }
                    if (lessThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_lessThen", names[i]), string.Format("{0}", lessThen));
                    }
                    if (greaterThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_greaterThen", names[i]), string.Format("{0}", greaterThen));
                    }
                }//date

            }//for

            SqlDataReader s = null;
            try
            {
                Sqlcommand.Connection = con;
                con.Close();
                con.Open();
                s = Sqlcommand.ExecuteReader();
            }
            catch (Exception e)
            {
                con.Close();
            }

            string table = "<div class=\"tableData\" > <table border=\"1\">";
            table += "<tr>";
            for (int i = 0; i < length; i++)
            {
                table += string.Format("<th>{0}</th>", names[i]);
            }
            table += "</tr>";
            if (s != null)
            {
                while (s.Read())
                {
                    table += "<tr>\n";
                    for (int i = 0; i < length; i++)
                    {
                        table += string.Format("<td>{0}</td>", s.GetValue(i).ToString());
                    }
                    table += "<tr/>";
                }
            }//if
            table += "</table></div>";
            if (s != null)
            {
                s.Close();
            }
            return table + query;
        }
예제 #4
0
        public static string getFilteredTableData(List<string> selects, List<string[]> conditions, string tableName)
        {
            DataBaseTable db = new DataBaseTable();
            db.setTableName(tableName);
            string[] names = selects.ToArray();
            int length = names.Length;//selected names length
            string[] types = new string[length];//selected names datatypes

            string[] originalTableName = getNames(tableName);
            string[] originalTableTypes = getDataTypes(tableName);
            string temp = "";
            for (int i = 0; i < length; i++)
            {
                temp = names[i];
                for (int j = 0; j < originalTableName.Count(); j++)
                {
                    if (temp == originalTableName.ElementAt(j))
                    {
                        types[i] = originalTableTypes[j];
                        break;
                    }
                }
            }//matching the datatypes

            string select = " ";
            for (int i = 0; i < selects.Count; i++)
            {
                select += selects.ElementAt(i);
                if (i < selects.Count - 1)
                {
                    select += ", ";
                }
                else
                {
                    select += " ";
                }
            }
            string query = buildSql(select, conditions, tableName);

            SqlCommand Sqlcommand = new SqlCommand(query, con);
            length = conditions.Count();
            for (int i = 0; i < length; i++)
            {
                if (originalTableTypes[i] == "text")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string contains = conditions.ElementAt(i)[1];
                    if (equals != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_equals", originalTableName[i]), string.Format("{0}", equals));
                    }
                    else if (contains != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_contains", originalTableName[i]), string.Format("%{0}%", contains));
                    }
                }//if text
                else if (originalTableTypes[i] == "number")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string lessThen = conditions.ElementAt(i)[1];
                    string greaterThen = conditions.ElementAt(i)[2];
                    if (equals != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_equals", originalTableName[i]), equals);
                    }
                    if (lessThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_lessThen", originalTableName[i]), lessThen);
                    }
                    if (greaterThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_greaterThen", originalTableName[i]), greaterThen);
                    }
                }//number
                else if (originalTableTypes[i] == "date")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string lessThen = conditions.ElementAt(i)[1];
                    string greaterThen = conditions.ElementAt(i)[2];
                    if (equals != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_equals", originalTableName[i]), string.Format("{0}", equals));
                    }
                    if (lessThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_lessThen", originalTableName[i]), string.Format("{0}", lessThen));
                    }
                    if (greaterThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_greaterThen", originalTableName[i]), string.Format("{0}", greaterThen));
                    }
                }//date

            }//for

            SqlDataReader s = null;
            try
            {
                Sqlcommand.Connection = con;
                con.Close();
                con.Open();
                s = Sqlcommand.ExecuteReader();
            }
            catch (Exception e)
            {
                con.Close();
            }
            length = names.Length;
            string table = "<div class=\"tableData\" > <table border=\"1\">";
            table += "<tr>";
            for (int i = 0; i < length; i++)
            {
                table += string.Format("<th>{0}</th>", names[i]);
            }
            table += "</tr>";
            if (s != null)
            {
                while (s.Read())
                {
                    table += "<tr>\n";
                    for (int i = 0; i < length; i++)
                    {
                        table += string.Format("<td>{0}</td>", s.GetValue(i).ToString());
                    }
                    table += "<tr/>";
                }
            }//if
            table += "</table></div>";
            if (s != null)
            {
                s.Close();
            }
            return table + query;
        }
        private void filteringFormSubmittedActionWithSelected()
        {
            DataBaseTable dbTable = new DataBaseTable();
            string tableName = Request.Form["tableName"];
            dbTable.setTableName(tableName);

            string[] names = dbTable.getColumnNames();
            string[] dataTypes = new string[names.Length];
            List<string[]> conditions = new List<string[]>();//list of array of where conditions for filtering

            for (int i = 0; i < names.Length; i++)//get dataType for each field
            {
                dataTypes[i] = Request.Form[names[i] + "_dataType"];
            }
            //check if the user had manually changed the datatypes of the menu
            bool flag = DatabaseAccessLayer.areDataTypesMatched(tableName, dataTypes);
            if (flag)//ie datatypes are same in database and form submitted
            {
                for (int i = 0; i < names.Length; i++)
                {
                    conditions.Add(createCondition3(names[i], dataTypes[i]));
                }
                Literal1.Text = DatabaseAccessLayer.getFilteringForm(tableName);//display filtering form
                Literal2.Text = DatabaseAccessLayer.getFilteredTableData(select, conditions, tableName);//data
            }
            else
            {
                DatabaseAccessLayer.updateTableDataTypes(tableName, names, dataTypes);
                Literal1.Text = DatabaseAccessLayer.getFilteringForm(tableName);
                Literal2.Text = DatabaseAccessLayer.getTableDataWhole(tableName);
            }
        }
        private static string buildSql(List<string[]> conditions, string tableName)
        {
            DataBaseTable db = new DataBaseTable();
            db.setTableName(tableName);
            string[] names = db.getColumnNames();
            string[] types = getDataTypes(tableName);
            int length = conditions.Count;//names.Length;
            string sql = string.Format("SELECT * FROM [{0}] ", tableName);
            string text = "";
            string and = " ";
            int count = 0;
            for (int i = 0; i < length; i++)
            {
                if (types[i] == "text")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string contains = conditions.ElementAt(i)[1];
                    if (equals != "")
                    {
                        text += string.Format("{0} {1} like @{2}_equals ", and, names[i], names[i]);
                        count++;
                        and = " AND ";
                    }
                    else if (contains != "")
                    {
                        if (count < 1)
                        {
                            text += string.Format("{0} {1} like @{2}_contains ", and, names[i], names[i]);
                            and = " AND ";
                            count++;
                        }
                        else
                        {
                            text += string.Format("{0} {1} like @{2}_contains ", and, names[i], names[i]);
                        }
                    }
                }//if text
                else if (types[i] == "number")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string lessThen = conditions.ElementAt(i)[1];
                    string greaterThen = conditions.ElementAt(i)[2];
                    if (equals != "")
                    {
                        text += string.Format(" {0} {1} = @{2}_equals ", and, names[i], names[i]);
                        and = " AND ";
                        count++;
                    }
                    if (lessThen != "")
                    {
                        if (count > 0)
                            text += string.Format("{0}  {1} < @{2}_lessThen ", and, names[i], names[i]);
                        else
                        {
                            text += string.Format(" {0}< @{1}_lessThen ", names[i], names[i]);
                            and = " AND ";
                            count++;
                        }
                    }
                    if (greaterThen != "")
                    {
                        if (count > 0)
                            text += string.Format("{0} {1} > @{2}_greaterThen ", and, names[i], names[i]);
                        else
                        {
                            text += string.Format(" {0} > @{1}_greaterThen ", names[i], names[i]);
                            and = " AND ";
                            count++;
                        }
                    }
                }//number
                else if (types[i] == "date")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string lessThen = conditions.ElementAt(i)[1];
                    string greaterThen = conditions.ElementAt(i)[2];
                    if (equals != "")
                    {
                        text = string.Format(" {0} = @{1}_equals ", names[i], names[i]);
                        and = " AND ";
                        count++;
                    }
                    if (lessThen != "")
                    {
                        if (count > 0)
                            text += string.Format("{0}  {1} < @{2}_lessThen ", and, names[i], names[i]);
                        else
                        {
                            text += string.Format(" {0}< @{1}_lessThen ", names[i], names[i]);
                            and = " AND ";
                            count++;
                        }
                    }
                    if (greaterThen != "")
                    {
                        if (count > 0)
                            text += string.Format("{0} {1} > @{2}_greaterThen ", and, names[i], names[i]);
                        else
                        {
                            text += string.Format(" {0} > @{1}_greaterThen ", names[i], names[i]);
                            and = " AND ";
                            count++;
                        }
                    }
                }//date

            }//for
            if (text.Trim() != "")
            {
                sql += string.Format(" WHERE ({0}) ", text);
            }

            return sql;
        }
 public static string getTableDataWhole(string tableName)
 {
     string sql = string.Format("select * from [{0}]", tableName);
     DataBaseTable db = new DataBaseTable();
     db.setTableName(tableName);
     string[] names = db.getColumnNames();
     int length = names.Length;
     SqlDataReader s = executeQuery(sql);
     string table = "<table border=\"1\">";
     table += "<tr>";
     for (int i = 0; i < length; i++)
     {
         table += string.Format("<th>{0}</th>", names[i]);
     }
     table += "</tr>";
     if (s != null)
     {
         while (s.Read())
         {
             table += "<tr>\n";
             for (int i = 0; i < length; i++)
             {
                 table += string.Format("<td>{0}</td>", s.GetValue(i).ToString());
             }
             table += "<tr/>";
         }
     }//if
     table += "</table>";
     return table;
 }
        public static string getFilteredTableData(List<string[]> conditions, string tableName)
        {
            DataBaseTable db = new DataBaseTable();
            db.setTableName(tableName);
            string[] names = db.getColumnNames();
            string[] types = getDataTypes(tableName);
            int length = names.Length;

            string query = buildSql(conditions, tableName);

            SqlCommand Sqlcommand = new SqlCommand(query, con);

            for (int i = 0; i < length; i++)
            {
                if (types[i] == "text")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string contains = conditions.ElementAt(i)[1];
                    if (equals != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_equals", names[i]), string.Format("{0}", equals));
                    }
                    else if (contains != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_contains", names[i]), string.Format("%{0}%", contains));
                    }
                }//if text
                else if (types[i] == "number")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string lessThen = conditions.ElementAt(i)[1];
                    string greaterThen = conditions.ElementAt(i)[2];
                    if (equals != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_equals", names[i]), equals);
                    }
                    if (lessThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_lessThen", names[i]), lessThen);
                    }
                    if (greaterThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_greaterThen", names[i]), greaterThen);
                    }
                }//number
                else if (types[i] == "date")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string lessThen = conditions.ElementAt(i)[1];
                    string greaterThen = conditions.ElementAt(i)[2];
                    if (equals != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_equals", names[i]), string.Format("{0}", equals));
                    }
                    if (lessThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_lessThen", names[i]), string.Format("{0}", lessThen));
                    }
                    if (greaterThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_greaterThen", names[i]), string.Format("{0}", greaterThen));
                    }
                }//date

            }//for

            SqlDataReader s = null;
            try
            {
                Sqlcommand.Connection = con;
                con.Close();
                con.Open();
                s = Sqlcommand.ExecuteReader();
            }
            catch (Exception e)
            {
                con.Close();
            }

            string table = "<div class=\"tableData\" > <table border=\"1\">";
            table += "<tr>";
            for (int i = 0; i < length; i++)
            {
                table += string.Format("<th>{0}</th>", names[i]);
            }
            table += "</tr>";
            if (s != null)
            {
                while (s.Read())
                {
                    table += "<tr>\n";
                    for (int i = 0; i < length; i++)
                    {
                        table += string.Format("<td>{0}</td>", s.GetValue(i).ToString());
                    }
                    table += "<tr/>";
                }
            }//if
            table += "</table></div>";
            if (s != null)
            {
                s.Close();
            }
            return table + query;
        }
        public static string getFilteredTableData(List<string> selects, List<string[]> conditions, string tableName)
        {
            DataBaseTable db = new DataBaseTable();
            db.setTableName(tableName);
            string[] names = selects.ToArray();
            int length = names.Length;//selected names length
            string[] types = new string[length];//selected names datatypes

            string[] originalTableName = getNames(tableName);
            string[] originalTableTypes = getDataTypes(tableName);
            string temp = "";
            for (int i = 0; i < length; i++)
            {
                temp = names[i];
                for (int j = 0; j < originalTableName.Count(); j++)
                {
                    if (temp == originalTableName.ElementAt(j))
                    {
                        types[i] = originalTableTypes[j];
                        break;
                    }
                }
            }//matching the datatypes

            string select = " ";
            for (int i = 0; i < selects.Count; i++)
            {
                select += selects.ElementAt(i);
                if (i < selects.Count - 1)
                {
                    select += ", ";
                }
                else
                {
                    select += " ";
                }
            }
            string query = buildSql(select, conditions, tableName);

            SqlCommand Sqlcommand = new SqlCommand(query, con);
            length = conditions.Count();
            for (int i = 0; i < length; i++)
            {
                if (originalTableTypes[i] == "text")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string contains = conditions.ElementAt(i)[1];
                    if (equals != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_equals", originalTableName[i]), string.Format("{0}", equals));
                    }
                    else if (contains != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_contains", originalTableName[i]), string.Format("%{0}%", contains));
                    }
                }//if text
                else if (originalTableTypes[i] == "number")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string lessThen = conditions.ElementAt(i)[1];
                    string greaterThen = conditions.ElementAt(i)[2];
                    if (equals != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_equals", originalTableName[i]), equals);
                    }
                    if (lessThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_lessThen", originalTableName[i]), lessThen);
                    }
                    if (greaterThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_greaterThen", originalTableName[i]), greaterThen);
                    }
                }//number
                else if (originalTableTypes[i] == "date")
                {
                    string equals = conditions.ElementAt(i)[0];
                    string lessThen = conditions.ElementAt(i)[1];
                    string greaterThen = conditions.ElementAt(i)[2];
                    if (equals != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_equals", originalTableName[i]), string.Format("{0}", equals));
                    }
                    if (lessThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_lessThen", originalTableName[i]), string.Format("{0}", lessThen));
                    }
                    if (greaterThen != "")
                    {
                        Sqlcommand.Parameters.AddWithValue(string.Format("@{0}_greaterThen", originalTableName[i]), string.Format("{0}", greaterThen));
                    }
                }//date

            }//for

            SqlDataReader s = null;
            try
            {
                Sqlcommand.Connection = con;
                con.Close();
                con.Open();
                s = Sqlcommand.ExecuteReader();
            }
            catch (Exception e)
            {
                con.Close();
            }
            length = names.Length;
            string table = "<div class=\"tableData\" > <table border=\"1\">";
            table += "<tr>";
            for (int i = 0; i < length; i++)
            {
                table += string.Format("<th>{0}</th>", names[i]);
            }
            table += "</tr>";
            if (s != null)
            {
                while (s.Read())
                {
                    table += "<tr>\n";
                    for (int i = 0; i < length; i++)
                    {
                        table += string.Format("<td>{0}</td>", s.GetValue(i).ToString());
                    }
                    table += "<tr/>";
                }
            }//if
            table += "</table></div>";
            if (s != null)
            {
                s.Close();
            }
            return table + query;
        }