public void LoadTableByIds(string tableName, List <Int64> ids)
        {
            var tableSetting = Program.TableDisplaySettings.Find(a => a.TableName.Equals(tableName));

            SQLiteTableReader reader = new SQLiteTableReader(Application.StartupPath, Program.DbPath);

            reader.Connect();
            var table = reader.GetDataTable(tableSetting, ids);

            reader.Disconnect();
            listBox1.ClearSelected();
            if (table == null)
            {
                dataGridView1.DataSource = null;
                currentTableSettings     = null;
                currentTable             = null;
            }
            else
            {
                CheckBeforeReload();
                SetDataTable(tableSetting, table);
            }
        }
        private void SetDataTable(TableSettings settings, DataTable preloadedTable = null)
        {
            DataTable table = null;

            if (preloadedTable == null)
            {
                SQLiteTableReader reader = new SQLiteTableReader(Application.StartupPath, Program.DbPath);
                reader.Connect();
                table = reader.GetDataTable(settings);
                reader.Disconnect();
            }
            else
            {
                table = preloadedTable;
            }

            currentDictonary = Program.TransDict.LoadDictonary(Path.Combine(Program.DictonariesDir, settings.TableName + "_" + toolStripComboBox1.SelectedItem + ".txt"));
            if (currentDictonary.Count > 0)
            {
                foreach (var item in settings.TextTypeAndName)
                {
                    for (int i = 0; i < table.Rows.Count; i++)
                    {
                        string original = (string)table.Rows[i][item.Value];
                        if (!string.IsNullOrWhiteSpace(original))
                        {
                            string trans = Program.TransDict.GetTranslation(currentDictonary, original);
                            if (!string.IsNullOrWhiteSpace(trans))
                            {
                                table.Rows[i][item.Value + "_trans"] = trans;
                            }
                        }
                    }
                }
            }
            table.AcceptChanges();
            dataGridView1.RowTemplate.Height = settings.RowHeight;
            dataGridView1.DataSource         = table;
            //dataGridView1.RowTemplate.Height = 50;
            for (int i = 0; i < dataGridView1.ColumnCount; i++)
            {
                if (dataGridView1.Columns[i].ValueType == typeof(Image))
                {
                    ((DataGridViewImageColumn)dataGridView1.Columns[i]).ImageLayout = DataGridViewImageCellLayout.Zoom;
                    dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
                }
                else if (dataGridView1.Columns[i].Name.EndsWith("_imagePath"))
                {
                    dataGridView1.Columns[i].Visible = false;
                }
                else
                {
                    dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
                    dataGridView1.Columns[i].ReadOnly     = true;
                }
            }
            foreach (var item in settings.TextTypeAndName)
            {
                dataGridView1.Columns[item.Value].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                dataGridView1.Columns[item.Value].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
                dataGridView1.Columns[item.Value].ReadOnly = false;

                dataGridView1.Columns[item.Value + "_trans"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                dataGridView1.Columns[item.Value + "_trans"].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
                dataGridView1.Columns[item.Value + "_trans"].ReadOnly = false;
            }
            foreach (var item in settings.ColumnWidth)
            {
                dataGridView1.Columns[item.Key].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
                dataGridView1.Columns[item.Key].Width        = item.Value;
                dataGridView1.Columns[item.Key].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
            }

            currentTableSettings = settings;
            currentTable         = table;
            if (filter != null)
            {
                filter.Close();
                filter = null;
            }

            // var test = table.DefaultView.RowFilter = "LEN(SkillName)=5";
        }