Beispiel #1
0
        private void textBox1_KeyUp(object sender, KeyEventArgs e)
        {
            KeyUp?.Invoke(sender, e);

            ShortcutKeyHelper.Select(sender, e, () =>
            {
                if (listBox1.Visible == true)
                {
                    listBox1_MouseDoubleClick(null, null);
                    e.Handled               = true;
                    textBox1.Text           = textBox1.Text.Substring(0, textBox1.Text.Length - 1);
                    textBox1.SelectionStart = textBox1.Text.Length;
                }
            }, () =>
            {
                ShortcutKeyHelper.Choose(sender, e, (inc) =>
                {
                    if (listBox1.Visible)
                    {
                        if (inc < 0 && listBox1.SelectedIndex == 0)
                        {
                            listBox1.SelectedIndex = 0;
                        }
                        else if (inc > 0 && listBox1.SelectedIndex == listBox1.Items.Count - 1)
                        {
                            listBox1.SelectedIndex = listBox1.Items.Count - 1;
                        }
                        else
                        {
                            listBox1.SelectedIndex += inc;
                        }
                    }
                }, () =>
                {
                    if (GetCaretPos(out Point point))
                    {
                        var strs = StringPlus.GetSQLKeyWords(e.KeyCode.ToString());

                        listBox1.Items.Clear();

                        if (strs != null && strs.Any())
                        {
                            textStart = textBox1.SelectionStart;
                            foreach (var str in strs)
                            {
                                listBox1.Items.Add(str);
                            }
                            point.Y               += 20;
                            listBox1.Location      = point;
                            listBox1.SelectedIndex = 0;
                            listBox1.Show();
                        }
                        else
                        {
                            listBox1.Hide();
                        }
                    }
                });
            });
Beispiel #2
0
        /// <summary>
        /// 执行sql
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void autoTextBox1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            ShortcutKeyHelper.AllSelect(sender, e);

            ShortcutKeyHelper.Run(sender, e, () => RunSql());
        }
Beispiel #3
0
 private void textBox1_KeyUp(object sender, KeyEventArgs e)
 {
     ShortcutKeyHelper.AllSelect(sender, e);
 }
Beispiel #4
0
        /// <summary>
        /// 执行sql
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void autoTextBox1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            string sql = ((TextBox)sender).Text.Trim();

            ShortcutKeyHelper.Run(sender, e, () =>
            {
                stopwatch.Restart();

                LoadForm.ShowLoading(this);

                Task.Factory.StartNew(() =>
                {
                    WEF.DbDAL.IDbObject dbObject = null;

                    if (ConnectionModel.DbType.Equals(DatabaseType.SqlServer.ToString()))
                    {
                        dbObject = new WEF.DbDAL.SQL2000.DbObject(ConnectionModel.ConnectionString);
                    }
                    else if (ConnectionModel.DbType.Equals(DatabaseType.SqlServer9.ToString()))
                    {
                        dbObject = new WEF.DbDAL.SQL2005.DbObject(ConnectionModel.ConnectionString);
                    }
                    else if (ConnectionModel.DbType.Equals(DatabaseType.MsAccess.ToString()))
                    {
                        dbObject = new WEF.DbDAL.OleDb.DbObject(ConnectionModel.ConnectionString);
                    }
                    else if (ConnectionModel.DbType.Equals(DatabaseType.Oracle.ToString()))
                    {
                        dbObject = new WEF.DbDAL.Oracle.DbObject(ConnectionModel.ConnectionString);
                    }
                    else if (ConnectionModel.DbType.Equals(DatabaseType.Sqlite3.ToString()))
                    {
                        dbObject = new WEF.DbDAL.SQLite.DbObject(ConnectionModel.ConnectionString);
                    }
                    else if (ConnectionModel.DbType.Equals(DatabaseType.MySql.ToString()))
                    {
                        dbObject = new WEF.DbDAL.MySql.DbObject(ConnectionModel.ConnectionString);
                    }
                    else
                    {
                        LoadForm.HideLoading(1);
                        MessageBox.Show("不支持的数据库类型!");
                        return;
                    }

                    if (string.IsNullOrEmpty(sql))
                    {
                        MessageBox.Show("sql内容不能为空!");
                        return;
                    }

                    this.Invoke(new Action(() =>
                    {
                        if (!string.IsNullOrWhiteSpace(((TextBox)sender).SelectedText))
                        {
                            sql = ((TextBox)sender).SelectedText.Trim();

                            if (string.IsNullOrEmpty(sql))
                            {
                                MessageBox.Show("sql内容不能为空!");
                                return;
                            }
                        }

                        dataGridView1.DataSource = null;
                    }));

                    if (string.Compare(sql, "select", true) >= 0)
                    {
                        try
                        {
                            int max = 50;

                            var dt = dbObject.GetTabData(ConnectionModel.Database, sql, max);

                            if (dt != null && dt.Rows.Count > 0)
                            {
                                var count = dt.Rows.Count;

                                if (count > max)
                                {
                                    for (int i = max; i < count; i++)
                                    {
                                        dt.Rows.RemoveAt(max);
                                    }
                                }


                                var dList = new List <int>();

                                for (int i = 0; i < dt.Columns.Count; i++)
                                {
                                    if (dt.Columns[i].DataType == typeof(DateTime))
                                    {
                                        dList.Add(i);
                                    }
                                }


                                dataGridView1.Invoke(new Action(() =>
                                {
                                    dataGridView1.DataSource = dt;

                                    if (dList.Any())
                                    {
                                        foreach (var item in dList)
                                        {
                                            dataGridView1.Columns[item].DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss.fff";
                                        }
                                    }

                                    lbl_execute.Text = $"当前显示{(max > count ? count : max)}行,影响数据行数:{count} 耗时:{stopwatch.Elapsed.TotalSeconds} 秒";
                                }));
                            }
                        }
                        catch (Exception ex)
                        {
                            this.Invoke(new Action(() =>
                            {
                                MessageBox.Show(this, $"查询发生异常,ex:" + ex.Message);
                            }));
                        }
                    }
                    else
                    {
                        try
                        {
                            var count = dbObject.ExecuteSql(ConnectionModel.Database, sql);

                            lbl_execute.Invoke(new Action(() =>
                            {
                                lbl_execute.Text = $"影响数据行数:{count} 耗时:{stopwatch.Elapsed.TotalMilliseconds} 毫秒";
                            }));
                        }
                        catch (Exception ex)
                        {
                            this.Invoke(new Action(() =>
                            {
                                MessageBox.Show(this, $"操作发生异常,ex:" + ex.Message);
                            }));
                        }
                    }
                    LoadForm.HideLoading();
                });
            });

            ShortcutKeyHelper.AllSelect(sender, e);
        }