C# 如何从文本框输入的关键字搜索数据库?在c中
我有一个程序,用户可以输入一些数据,数据将被存储到我使用Ms Access的数据库中。但是,该程序也可以从数据库中搜索现有数据。用户可以从文本框中输入关键字,程序将显示数据库中的数据。 像这样: 用户将向Kd输入关键字或文本。Dosen文本框,然后它将显示数据库中包含该关键字的数据。以下是数据库: 有人能帮我怎么做吗 无论如何,我的代码如下:C# 如何从文本框输入的关键字搜索数据库?在c中,c#,C#,我有一个程序,用户可以输入一些数据,数据将被存储到我使用Ms Access的数据库中。但是,该程序也可以从数据库中搜索现有数据。用户可以从文本框中输入关键字,程序将显示数据库中的数据。 像这样: 用户将向Kd输入关键字或文本。Dosen文本框,然后它将显示数据库中包含该关键字的数据。以下是数据库: 有人能帮我怎么做吗 无论如何,我的代码如下: public partial class Form1 : Form { public Form1() {
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();
}
您的方法包含一个变量,该变量是您的db查询,如SELECT*FROM YOUTRABLE,其中名称为%
现在,您可以在Datagridview上显示过滤后的值
public void FilterByName()
{
var result = YOURSQLQUERY.ToList();
dataGridView1.DataSource = result;
}
您应该从UI代码中重构出数据库代码。把他们分开。遵循单一责任原则。如果在之前创建了按钮和事件,您应该重构它们,否则很难为您和其他人阅读代码。您可以使用ButtonAd、ButtonDelete等。我个人更喜欢命名ActionAdd和ActionDelete,因为它与用户体验更相关。用法还包括将本地命令变量命名为commandInsert或commandUpdate,或至少命名为cmdNew。同样,您也可以使用:strConnection或connectionString代替connect,connection代替vconnect。本地变量的良好命名可能是目标精确性,例如:indexYear或rowPerson或queryDelete。好的,谢谢您的建议