示例#1
0
        private void Save_Click(object sender, RoutedEventArgs e)//세트 저장
        {
            if (Detect_Fallacy())
            {
                return; //혹시 입력 규칙에 어긋나는지 검사한다.
            }
            if (update) //세트 수정의 경우 저장할 때 쓰는 함수가 다르다.
            {
                ModifySet_Save();
                return;
            }
            string str = Set_Title.Text;
            int    i, size = line_list.Count();

            using (SQLiteConnection conn = new SQLiteConnection(MainWindow.loc))
            {
                conn.Open();
                string        query = "CREATE TABLE '" + str + "' (`word` TEXT, `mean` TEXT, `correct` INTEGER, `wrong` INTEGER);";//테이블 생성
                SQLiteCommand cmd   = new SQLiteCommand(query, conn);
                try
                {
                    cmd.ExecuteNonQuery();
                }
                catch (Exception)
                {
                    Caution caution = new Caution("이미 같은 이름의 세트가 존재합니다.");
                    caution.ShowDialog();
                    return;//세트 이름을 바꿔오기 전에는 저장이 불가하다.
                }

                query           = "INSERT INTO `set_name` (name) VALUES('" + str + "');";
                cmd.CommandText = query;
                cmd.ExecuteNonQuery();

                for (i = 0; i < size; i++)//세트에 데이터를 넣는다.
                {
                    query           = "INSERT INTO `" + str + "` (word, mean, correct, wrong) VALUES('" + words[line_list[i] - 1].ToString() + "', '" + means[line_list[i] - 1].ToString() + "', 0, 0);";
                    cmd.CommandText = query;
                    cmd.ExecuteNonQuery();
                }
            }
            DialogResult = true;
        }
示例#2
0
        private bool Detect_Fallacy()
        {
            string str = Set_Title.Text;
            int    i, size = line_list.Count();
            string w, m;

            if (str.Contains("\'") || str.Contains("\"") || str.Contains("--"))
            {
                Caution c = new Caution("', \", --가 있는지 확인합시다.");//sql 인젝션 방지용
                c.ShowDialog();
                return(true);
            }
            else if (str.Length == 0)
            {
                Caution c = new Caution("세트 이름을 비워놓았다니!");//빈칸 방지용
                c.ShowDialog();
                return(true);
            }

            for (i = 0; i < size; i++)
            {
                w = words[line_list[i] - 1].ToString();
                m = means[line_list[i] - 1].ToString();

                if (w.Contains("\'") || w.Contains("\"") || w.Contains("--") || m.Contains("\'") || m.Contains("\"") || m.Contains("--"))
                {
                    Caution c = new Caution("', \", --가 있는지 확인합시다.");//sql 인젝션 방지용
                    c.ShowDialog();
                    return(true);
                }
                else if (w.Length == 0 || m.Length == 0)
                {
                    Caution c = new Caution("빈 곳이 있는지 확인합시다.");//빈칸 방지용
                    c.ShowDialog();
                    return(true);
                }
            }

            return(false);
        }