首页 > 解决方案 > 如何从文本框中输入的关键字搜索数据库?在c#中

问题描述

我有一个程序,用户可以输入一些数据并将数据存储到数据库中(我使用 Ms Access)。但是,该程序还可以对数据库中的现有数据进行一些搜索。用户可以从文本框中输入关键字,程序将显示数据库中的数据。像这样:

克多森

用户将关键字或文本输入到“Kd. Dosen”文本框,然后它将显示来自数据库的数据包含该关键字。这是数据库:

kddosen2

有人可以帮我怎么做吗?

无论如何,这是我的代码:

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            //stri
            string connect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\3rd Term\\VisualProgramming\\Projects\\PendataanDosen\\mhs.accdb";
            OleDbConnection vconnect = new OleDbConnection(connect);           
            string queryInsert = "insert into MstDosen (KdDosen, NaDosen, Alamat, NoTelp, NoHP)values (@kddosen, @namadosen, @alamat, @notelp, @nohp)";
            OleDbCommand vinsert = new OleDbCommand(queryInsert, vconnect);
            vinsert.Parameters.AddWithValue("@kddosen", textBox1.Text);
            vinsert.Parameters.AddWithValue("@namadosen", textBox2.Text);
            vinsert.Parameters.AddWithValue("@alamat", textBox3.Text);
            vinsert.Parameters.AddWithValue("@notelp", textBox4.Text);
            vinsert.Parameters.AddWithValue("@nohp", textBox5.Text);
            try
            {
                vconnect.Open();
                OleDbDataReader vdr = vinsert.ExecuteReader();
                MessageBox.Show("Data berhasil dimasukkan!");
            }
            catch
            {
                MessageBox.Show("Gagal memasukkan data");
            }
            finally
            {
                vconnect.Close();
            }             
        }

        private void button2_Click(object sender, EventArgs e)
        {
            string connect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\3rd Term\\VisualProgramming\\Projects\\PendataanDosen\\mhs.accdb";
            OleDbConnection vconnect = new OleDbConnection(connect);
            string queryDelete = "update MstDosen set NaDosen = @namadosen, Alamat = @alamat, NoTelp = @notelp, NoHP = @nohp where KdDosen = @kddosen";
            OleDbCommand vinsert = new OleDbCommand(queryDelete, vconnect);
            vinsert.Parameters.AddWithValue("@kddosen", textBox1.Text);
            vinsert.Parameters.AddWithValue("@namadosen", textBox2.Text);
            vinsert.Parameters.AddWithValue("@alamat", textBox3.Text);
            vinsert.Parameters.AddWithValue("@notelp", textBox4.Text);
            vinsert.Parameters.AddWithValue("@nohp", textBox5.Text);
            try
            {
                vconnect.Open();
                OleDbDataReader vdr = vinsert.ExecuteReader();
                MessageBox.Show("Data berhasil diubah!");
            }
            catch
            {
                MessageBox.Show("Gagal mengubah data");
            }
            finally
            {
                vconnect.Close();
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            string connect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\3rd Term\\VisualProgramming\\Projects\\PendataanDosen\\mhs.accdb";
            OleDbConnection vconnect = new OleDbConnection(connect);
            string queryDelete = "delete from MstDosen where KdDosen = @kddosen";
            OleDbCommand vinsert = new OleDbCommand(queryDelete, vconnect);
            vinsert.Parameters.AddWithValue("@kddosen", textBox1.Text);
            //vinsert.Parameters.AddWithValue("@namadosen", textBox2.Text);
            //vinsert.Parameters.AddWithValue("@alamat", textBox3.Text);
            //vinsert.Parameters.AddWithValue("@notelp", textBox4.Text);
            //vinsert.Parameters.AddWithValue("@nohp", textBox2.Text);
            try
            {
                vconnect.Open();
                OleDbDataReader vdr = vinsert.ExecuteReader();
                MessageBox.Show("Data berhasil dihapus!");
            }
            catch
            {
                MessageBox.Show("Gagal menghapus data");
            }
            finally
            {
                vconnect.Close();
            }         
        }

        private void textBox1_MouseLeave(object sender, EventArgs e)
        {

        }

        private void button5_Click(object sender, EventArgs e)
        {
            DataList dat = new DataList();
            dat.Show();
        }

        public void insert()
        {
            if(textBox1.Text != "" && textBox2.Text != "")
            {
                string connect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\3rd Term\\VisualProgramming\\Projects\\PendataanDosen\\mhs.accdb";
                OleDbConnection vconnect = new OleDbConnection(connect);
                string queryinsert = "insert into MstDosen (KdDosen, NaDosen, Alamat, NoTelp, NoHP) values (@kddosen, @namadosen, @alamat, @notelp, @nohp)";
                OleDbCommand vinsert = new OleDbCommand(queryinsert, vconnect);
                vinsert.Parameters.AddWithValue("@kddosen", textBox1.Text);
                vinsert.Parameters.AddWithValue("@namadosen", textBox2.Text);
                vinsert.Parameters.AddWithValue("@alamat", textBox3.Text);
                vinsert.Parameters.AddWithValue("@notelp", textBox4.Text);
                vinsert.Parameters.AddWithValue("@nohp", textBox5.Text);
            }
            else
            {
                MessageBox.Show("Data Belum Dimasukkan");
            }
        }
    }

标签: c#

解决方案


您必须添加教科书更改选项才能双击要编写文本和过滤的教科书。

private void txtCariKodu_TextChanged(object sender, EventArgs e)
        {
            FilterByName();
        }

您的方法包含一个变量,该变量是您的数据库查询,例如 (SELECT * FROM YOUTRABLE WHERE NAME LIKE % )。

现在您可以在 Datagridview 上显示过滤后的值。

 public void FilterByName()
                {
                        var result = YOURSQLQUERY.ToList();

                        dataGridView1.DataSource = result;
                }

推荐阅读