求大神帮助*≧▽≦*!C#中使用sql查询,where后用四个条件查出主键

String sql = String.Format(@"SELECT 影票编号 FROM 影票信息表 WHERE 影片编号='" + textBox6.Text.Trim() + "' AND 影院编号='" + textBox2.Text.Trim() + "' AND 放映厅号='" + comboBox1.Text.Trim(), "'AND 座位号='" + comboBox2.Text.Trim(),"'");

我的影票信息表一开始没有将用户ID作为属性,所以现在想要通过影票编号影院编号放映厅号和座位号查询得到影票编号,可是系统报错。
图片说明
还有为什么comboBox.Text.Trim()后程序提示我要加,呢?不然就出现错误

String.Format你第一个参数没有占位符参数啊,直接组合不就行了,干嘛还String.Format,你这个format后最后执行的就是

"SELECT 影票编号 FROM 影票信息表 WHERE 影片编号='" + textBox6.Text.Trim() + "' AND 影院编号='" + textBox2.Text.Trim() + "' AND 放映厅号='" + comboBox1.Text.Trim()

这句sql了,后面的2个参数没有占位符直接丢失了,而且sql注入你还是没解决。。

要注意将单引号替换为2个''防止注入

 String sql = @"SELECT 影票编号 FROM 影票信息表 WHERE 影片编号='" + textBox6.Text.Trim().Replace("'","'') + "' AND 影院编号='" + textBox2.Text.Trim().Replace("'","'')  + "' AND 放映厅号='" + comboBox1.Text.Trim().Replace("'","'')  + "'AND 座位号='" + comboBox2.Text.Trim().Replace("'","'')  + "'";

SELECT 影票编号 FROM 影票信息表 WHERE 影片编号=@影片编号 AND 影院编号=@影院编号 AND 放映厅号=@放映厅号 AND 座位号=@座位号

MySqlParameter[] parameters = {
new MySqlParameter("@影片编号", textBox6.Text.Trim()),
new MySqlParameter("@影院编号", textBox2.Text.Trim()),
new MySqlParameter("@放映厅号", comboBox1.Text.Trim()),
new MySqlParameter("@座位号", comboBox1.Text.Trim())
};

然后把参数传入sql 图片说明