在c#中添加不同条件的搜索
本文关键字:条件 搜索 添加 | 更新日期: 2023-09-27 18:13:18
我想知道如何查看用户在组合框中选择了doctor name还是doctor special,如果用户从组合框中选择了doctor name,那么应该运行第一个if条件,但是如果用户输入了doctor special,则应该运行第二个if条件。但是当我输入医生名称时,它不起作用。
if (comboxBox1.Text = "Doctor name") ;
{
try
{
OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:''dev''assignt_soft''healthline_''healthline_''healthline_db.accdb");
OleDbCommand com = new OleDbCommand("select * from doctorss where uuname='" + textBox1.Text + "'", con);
DataTable dt = new DataTable();
con.Open();
dt.Load(com.ExecuteReader());
dataGridView1.DataSource = dt;
con.Close();
MessageBox.Show("Displaying doctors with the search criteria doctor name");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
if (comboxBox1.Text = "Doctor special") ;
{
try
{
OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:''dev''assignt_soft''healthline_''healthline_''healthline_db.accdb");
OleDbCommand com = new OleDbCommand("select * from doctorss where doctor special='" + textBox1.Text + "'", con);
DataTable dt = new DataTable();
con.Open();
dt.Load(com.ExecuteReader());
dataGridView1.DataSource = dt;
con.Close();
MessageBox.Show("Displaying doctors with the search criteria doctor name");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
试着这样格式化你的代码。
try
{
if (comboxBox1.Text != "Doctor special")
{
//doctor name code...
}
else
{
//special doctor code...
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
对于if
语句,总是在c#中使用==
相等运算符,如if (count == 0)
。单个等号用于像int count = 1
这样的赋值。如果在if(…)之后没有;
,它将使编译器认为存在空白语句,并将其与if条件相关联。接下来的代码块将成为一个正常的代码块,并将始终执行!
首先让这个工作。然后,使您的查询参数化,以尽量减少sql注入威胁,正如@Steve在评论中提到的。