protected void custo_search_Click(object sender, EventArgs e)
{
conn.Open();
if (appo_fname.Text != null || appo_lname.Text != null || appo_num.Text != null)
{
DataTable dt = new DataTable();
MySqlDataReader myReader = null;
MySqlCommand myCommand = new MySqlCommand("SELECT customers.First_name,customers.Last_name,customers.Phone_num From customers INNER JOIN appointments On customers.Phone_num=appointments.Phone_num Where customers.Phone_num='" + search_txt.Text+"' ", conn);
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
appo_fname.Text = (myReader["customers.First_name"].ToString());
appo_lname.Text = (myReader["customers.Last_name"].ToString());
appo_num.Text = (myReader["customers.Phone_num"].ToString());
}
conn.Close();
}
}
我正在尝试使用相同的主键连接两个表,所以当我在搜索文本框中输入一个电话号码时,它会检查另一个表中是否存在该号码,如果是,那么我将获得f.name, l.name和手机插入其他文本框以便插入客户信息而无需全部输入,但是我的代码中的某些内容无法正常工作,它会跳过"内部的代码,而#34;
答案 0 :(得分:0)
更改以下声明
appo_fname.Text = (myReader["customers.First_name"].ToString());
appo_lname.Text = (myReader["customers.Last_name"].ToString());
appo_num.Text = (myReader["customers.Phone_num"].ToString());
成:
appo_fname.Text = (myReader["First_name"].ToString());
appo_lname.Text = (myReader["Last_name"].ToString());
appo_num.Text = (myReader["Phone_num"].ToString());
(删除列名前的表名) 此外,您的代码易受SQL注入攻击,因为您正在使用字符串连接创建select语句。您应该将电话号码作为参数传递给您的选择语句。
我无法看到你是如何创建conn对象的,但我确保它是通过使用'来完成的。言。