Ejemplo n.º 1
0
        private void updatebtn_Click(object sender, EventArgs e)
        {
            OracleConnection con = new OracleConnection();

            con.ConnectionString = "Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-E896G02)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)));;User ID=QuanLyLopHoc;Password=123;Connection Timeout=120;";

            if (capquyenrolerb.Checked)
            {
                if (CheckRole(tenuserroletb.Text.ToUpper()) == 0)
                {
                    MessageBox.Show("Role không tồn tại.");
                    con.Close();
                    return;
                }
            }
            else
            {
                if (CheckUser(tenuserroletb.Text.ToUpper()) == 0)
                {
                    MessageBox.Show("User không tồn tại.");
                    con.Close();
                    return;
                }
            }
            con.Open();
            if (hocsinhrb.Checked) //update trên bảng hocsinh
            {
                OracleCommand cmd_update = new OracleCommand();
                cmd_update.Connection = con;
                if (HOCSINH.CheckedItems.Count == 0 || HOCSINH.CheckedItems.Count == 5) //cấp quyền upate trên cả bảng
                {
                    cmd_update.CommandText = "grant update on HocSinh to " + tenuserroletb.Text.ToUpper();
                }
                else
                {
                    //kiểm tra cấp quyền update trên những cột nào
                    string column = "";
                    for (int i = 0; i < HOCSINH.Items.Count; i++)
                    {
                        if (HOCSINH.GetItemCheckState(i) == CheckState.Checked)
                        {
                            column += HOCSINH.Items[i].ToString() + ",";
                        }
                    }
                    //xóa dấu , ở cuối
                    column = column.TrimEnd(',');
                    cmd_update.CommandText = "grant update(" + column + ") on HocSinh to " + tenuserroletb.Text.ToUpper();
                }

                if (wgohscb.Checked)//có with grant option
                {
                    cmd_update.CommandText += " WITH GRANT OPTION";
                }
                cmd_update.CommandType = CommandType.Text;
                cmd_update.ExecuteNonQuery();
                MessageBox.Show("Cấp quyền update thành công");

                //load lại thong tin quyền
                ThongTinQuyen();
            }
            else //update trên bảng lop
            {
                OracleCommand cmd_update = new OracleCommand();
                cmd_update.Connection = con;

                if (LOP.CheckedItems.Count == 0 || LOP.CheckedItems.Count == 5) //cấp quyền upate trên cả bảng
                {
                    cmd_update.CommandText = "grant update on Lop to " + tenuserroletb.Text.ToUpper();
                }
                else
                {
                    //kiểm tra cấp quyền update trên những cột nào
                    string column = "";
                    for (int i = 0; i < LOP.Items.Count; i++)
                    {
                        if (LOP.GetItemCheckState(i) == CheckState.Checked)
                        {
                            column += LOP.Items[i].ToString() + ",";
                        }
                    }
                    //xóa dấu , ở cuối
                    column = column.TrimEnd(',');
                    cmd_update.CommandText = "grant update(" + column + ") on LOP to " + tenuserroletb.Text.ToUpper();
                }
                if (wgolcb.Checked)//có with grant option
                {
                    cmd_update.CommandText += " WITH GRANT OPTION";
                }
                cmd_update.CommandType = CommandType.Text;
                cmd_update.ExecuteNonQuery();
                MessageBox.Show("Cấp quyền update thành công");
                //load lại thong tin quyền
                ThongTinQuyen();
            }
            con.Close();
        }
Ejemplo n.º 2
0
        private void selectbtn_Click(object sender, EventArgs e)
        {
            OracleConnection con = new OracleConnection();

            con.ConnectionString = "Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-E896G02)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)));;User ID=QuanLyLopHoc;Password=123;Connection Timeout=120;";

            if (capquyenrolerb.Checked)
            {
                if (CheckRole(tenuserroletb.Text.ToUpper()) == 0)
                {
                    MessageBox.Show("Role không tồn tại.");
                    con.Close();
                    return;
                }
            }
            else
            {
                if (CheckUser(tenuserroletb.Text.ToUpper()) == 0)
                {
                    MessageBox.Show("User không tồn tại.");
                    con.Close();
                    return;
                }
            }
            con.Open();
            if (hocsinhrb.Checked) //select trên bảng hocsinh
            {
                OracleCommand cmd_select = new OracleCommand();
                cmd_select.Connection = con;
                if (HOCSINH.CheckedItems.Count == 0 || HOCSINH.CheckedItems.Count == 5) //cấp quyền select trên cả bảng
                {
                    cmd_select.CommandText = "grant select on HocSinh to " + tenuserroletb.Text.ToUpper();
                }
                else
                {
                    //những cột viết tắt để tạo view không bị lỗi view quá dài
                    string[] short_name = { "MHS", "THS", "GT", "DC", "ML" };
                    //kiểm tra cấp quyền select trên những cột nào
                    string column = "";
                    //chọn ra những cột để select
                    string select_column = "";
                    for (int i = 0; i < HOCSINH.Items.Count; i++)
                    {
                        if (HOCSINH.GetItemCheckState(i) == CheckState.Checked)
                        {
                            column        += short_name[i] + "_";
                            select_column += HOCSINH.Items[i].ToString() + ",";
                        }
                    }
                    //xóa dấu , ở cuối (để bỏ váo câu lệnh select)
                    select_column = select_column.TrimEnd(',');

                    //them HS vào cuối để biết là view từ bàng HS
                    column += "HS";

                    //kiểm tra view có tồn tại hay chưa
                    if (CheckView(column) == 0)//chưa tồn tại
                    {
                        //tạo view mới
                        OracleCommand cmd_taoview = new OracleCommand();
                        cmd_taoview.Connection  = con;
                        cmd_taoview.CommandText = "create view " + column + " as select " + select_column + " from HOCSINH";
                        cmd_taoview.CommandType = CommandType.Text;
                        cmd_taoview.ExecuteNonQuery();
                    }
                    //cấp quyền đọc trên view này cho user
                    cmd_select.CommandText = "grant select on " + column + " to " + tenuserroletb.Text.ToUpper();
                }

                if (wgohscb.Checked)//có with grant option
                {
                    cmd_select.CommandText += " WITH GRANT OPTION";
                }
                cmd_select.CommandType = CommandType.Text;
                cmd_select.ExecuteNonQuery();
                MessageBox.Show("Cấp quyền select thành công");

                //load lại thong tin quyền
                ThongTinQuyen();
            }
            else //select trên bảng lop
            {
                OracleCommand cmd_select = new OracleCommand();
                cmd_select.Connection = con;

                if (LOP.CheckedItems.Count == 0 || LOP.CheckedItems.Count == 5) //cấp quyền select trên cả bảng
                {
                    cmd_select.CommandText = "grant select on Lop to " + tenuserroletb.Text.ToUpper();
                }
                else
                {
                    //kiểm tra cấp quyền select trên những cột nào
                    //những cột viết tắt để tạo view không bị lỗi view quá dài
                    string[] short_name = { "ML", "TL", "SHSTD" };
                    //kiểm tra cấp quyền select trên những cột nào
                    string column = "";
                    //chọn ra những cột để select
                    string select_column = "";
                    for (int i = 0; i < LOP.Items.Count; i++)
                    {
                        if (LOP.GetItemCheckState(i) == CheckState.Checked)
                        {
                            column        += short_name[i] + "_";
                            select_column += LOP.Items[i].ToString() + ",";
                        }
                    }
                    //xóa dấu , ở cuối (để bỏ váo câu lệnh select)
                    select_column = select_column.TrimEnd(',');

                    //them  vào cuối để biết là view từ bàng Lop
                    column += "L";

                    //kiểm tra view có tồn tại?
                    if (CheckView(column) == 0)//chưa tồn tại
                    {
                        //tạo view mới
                        OracleCommand cmd_taoview = new OracleCommand();
                        cmd_taoview.Connection  = con;
                        cmd_taoview.CommandText = "create view " + column + " as select " + select_column + " from LOP";
                        cmd_taoview.CommandType = CommandType.Text;
                        cmd_taoview.ExecuteNonQuery();
                    }
                    cmd_select.CommandText = "grant select on " + column + " to " + tenuserroletb.Text.ToUpper();
                }
                if (wgolcb.Checked)//có with grant option
                {
                    cmd_select.CommandText += " WITH GRANT OPTION";
                }
                cmd_select.CommandType = CommandType.Text;
                cmd_select.ExecuteNonQuery();
                MessageBox.Show("Cấp quyền select thành công");
                //load lại thong tin quyền
                ThongTinQuyen();
            }
            con.Close();
        }