c# - 如何从文本框中输入的关键字搜索数据库?在c#中
问题描述
我有一个程序,用户可以输入一些数据并将数据存储到数据库中(我使用 Ms Access)。但是,该程序还可以对数据库中的现有数据进行一些搜索。用户可以从文本框中输入关键字,程序将显示数据库中的数据。像这样:
用户将关键字或文本输入到“Kd. Dosen”文本框,然后它将显示来自数据库的数据包含该关键字。这是数据库:
有人可以帮我怎么做吗?
无论如何,这是我的代码:
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");
}
}
}
解决方案
您必须添加教科书更改选项才能双击要编写文本和过滤的教科书。
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;
}
推荐阅读
- swift - 如何在 Swift 中将 TimeDelay 设置为第二天@凌晨 5 点?
- leaflet - Leaflet VideoOverlay 控件
- python-3.x - 正则表达式逐行
- node.js - nodejs webserver:处理对同一个api的多个请求
- linux - 递归删除所有目录中除一个最新文件之外的所有文件
- python - 如何在运行时重新启动我的 python 程序
- python - 如何从 Tkiner 单选按钮获取 INT 值
- python - telnetlib 执行无响应和超时
- python - 如何使用 Tensorflow tf.nn.conv2 制作卷积层?
- python - Firebase Flask API 部署错误:/bin/sh: 1: exec: gunicorn: not found