我使用 mysql 作为存储数据的数据库。
我有一个带有文本框、单选按钮、组合框等的窗体;人们在其中提供有关自己的个人信息,例如(名字、姓氏、性别、生日日期、电话、父亲姓名等等)。(共 40 个字段)
我想做一个搜索按钮。使用此按钮,我想填写一些字段,然后按搜索按钮打开一个新窗口,其中包含所有具有相同个人信息的人。我实现了为一个字段做一个搜索按钮(例如仅按名称搜索)。
但是当我选择使用多个字段进行搜索时,我遇到了问题。例如,我选择搜索所有姓名为:Chris、昵称:Dung、性别:Male、Birth_Country:UK 等的人,但是当我推送搜索时,它会返回一个与搜索数据无关的窗口。有人可以帮我吗?
更改后我为搜索按钮制作的代码是:
public MySqlDataAdapter da;
public DataSet ds;
public string sTable = "data";
private void anazitisi_button_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
try
{
conn = openconnectio.GetConn();
string radiob = null;
if (radioButton1.Checked == true)
{
radiob = radioButton1.Text;
}
else if(radioButton2.Checked == true)
{
radiob = radioButton2.Text;
}
StringBuilder Query = new StringBuilder("SELECT * FROM data d INNER JOIN country c ON d.id_data = c.id_country WHERE 1=1 ");
if (!String.IsNullOrEmpty(textBox1.Text))
Query.Append(" AND name like '" + textBox1.Text + "'");
if (!String.IsNullOrEmpty(textBox2.Text))
Query.Append(" AND lastname like '" + textBox2.Text + "'");
if (!String.IsNullOrEmpty(radiob))
Query.Append(" AND sex like '" + radiob + "'");
if (!String.IsNullOrEmpty(maskedTextBox1.Text))
Query.Append(" AND birthdate like '" + maskedTextBox1.Text + "'");
if (!String.IsNullOrEmpty(maskedTextBox2.Text))
Query.Append(" AND phone_number like '" + maskedTextBox2.Text + "'");
MySqlDataAdapter da = new MySqlDataAdapter(Query.ToString(), conn);
ds = new DataSet();
da.Fill(ds, sTable);
conn.Close();
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
MessageBox.Show(ex.Message);
}
finally
{
DataGridView dg1 = new DataGridView();
form2.Controls.Add(dg1);
dg1.Dock = DockStyle.Fill;
dg1.Refresh();
dg1.DataSource = ds;
dg1.DataMember = sTable;
form2.Show();
if (conn != null)
{
conn.Close();
}
}
}
当我评论该代码时,我的搜索结果很好:(
生日代码)并且我当然不用作搜索。
//if (!String.IsNullOrEmpty(maskedTextBox1.Text))
// Query.Append(" AND birthdate like '" + maskedTextBox1.Text + "'");
但是当我使用(生日代码)时,我得到的结果只有一个空白行。
我认为因为生日 maskedTextbox 有一个掩码:00/00/0000 有什么
建议吗?
谢谢。