Ejemplo n.º 1
0
        /*==============================================================
         * 根据条件查找数据
         *==============================================================*/
        internal void   do_search()
        {
            DATA.m_s_lock.EnterReadLock();

            if (DATA.m_s_all_subs.Count == 0)
            {
                DATA.m_s_lock.ExitReadLock();

                if (!m_UpdateDatabase.m_is_updating_database)
                {
                    if (MessageBox.Show(LANGUAGES.txt(26),                              // 本地没有任何数据,是否要下载最新的字幕索引?
                                        $"{COMMON.m_k_PROGRAM_NAME} {COMMON.m_k_VERSION}",
                                        MessageBoxButtons.YesNo,
                                        MessageBoxIcon.Question,
                                        MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                    {
                        FORMS.active_form(m_UpdateDatabase);

                        m_UpdateDatabase.radioButton_UseRemoteData.Checked = true;
                        m_UpdateDatabase.PictureBox_Start_Click(null, null);
                    }
                }

                return;
            }

            if (textBox_Filter.TextLength == 0)
            {
                m_DataGridView_event_enable  = false;
                dataGridView_Main.DataSource = DATA.m_s_dt;
                update_columns_style();
                m_DataGridView_event_enable = true;
            }
            else
            {
                string filter_string;

                if (radioButton_SearchByName.Checked)
                {
                    StringBuilder sb = new StringBuilder();

                    string fix_Name_chs = SQL.fix_string(ChineseConverter.Convert(textBox_Filter.Text, ChineseConversionDirection.TraditionalToSimplified));
                    string fix_Name_cht = SQL.fix_string(ChineseConverter.Convert(textBox_Filter.Text, ChineseConversionDirection.SimplifiedToTraditional));

                    sb.Append($"[name_chs] like '%{fix_Name_chs}%' or [name_chs] like '%{fix_Name_cht}%' or ");
                    sb.Append($"[name_cht] like '%{fix_Name_chs}%' or [name_cht] like '%{fix_Name_cht}%' or ");
                    sb.Append($"[name_jp] like '%{fix_Name_chs}%' or [name_jp] like '%{fix_Name_cht}%' or ");
                    sb.Append($"[name_en] like '%{fix_Name_chs}%' or ");
                    sb.Append($"[name_rome] like '%{fix_Name_chs}%'");

                    filter_string = sb.ToString();
                }
                else
                {
                    filter_string = textBox_Filter.Text;
                }

                try
                {
                    DataRow[] dr_list = DATA.m_s_dt.Select(filter_string);

                    DATA.m_s_dt_search.Rows.Clear();
                    foreach (DataRow dr in dr_list)
                    {
                        DataRow dr_tmp = DATA.m_s_dt_search.NewRow();
                        for (int i = 0; i < DATA.m_s_dt_search.Columns.Count; ++i)
                        {
                            dr_tmp[i] = dr[i];
                        }

                        DATA.m_s_dt_search.Rows.Add(dr_tmp);
                    }

                    m_DataGridView_event_enable  = false;
                    dataGridView_Main.DataSource = DATA.m_s_dt_search;
                    update_columns_style();
                    m_DataGridView_event_enable = true;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

            DATA.m_s_lock.ExitReadLock();

            update_status();
        }
Ejemplo n.º 2
0
 /*==============================================================
  * 设置
  *==============================================================*/
 private void ToolStripButton_Settings_Click(object sender, EventArgs e)
 {
     FORMS.active_form(m_Setting);
 }
Ejemplo n.º 3
0
 /*==============================================================
  * 关于
  *==============================================================*/
 private void ToolStripButton_About_Click(object sender, EventArgs e)
 {
     FORMS.active_form(m_About);
 }
Ejemplo n.º 4
0
 /*==============================================================
  * 更新数据库
  *==============================================================*/
 private void ToolStripButton_UpdateDB_Click(object sender, EventArgs e)
 {
     FORMS.active_form(m_UpdateDatabase);
 }