字符串方法 null 在其他方法的 select 查询中

string method null is in other method's select query

我正在创建学生出勤信息系统。

如您所见,这些方法相互关联。 students table 包含每个学生的一般信息。 有些同学总是缺席,所以没有students_ID in register table。 这会导致 da.Fill(dt) 出错。它说:

MySqlException was unhandled by user code "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1"

如何消除这个错误?

private string getUquvchilar_ID()
{
    var fish = ddlName.Text.Replace("'", "''");
    MySqlConnection con = new MySqlConnection(constr);
    con.Open();
    string query = "Select Students_ID from students where CONCAT(Familiyasi , ' ', Ismi , ' ', Sharifi)='" + fish + "'";
    MySqlCommand cmd = new MySqlCommand(query);
    cmd.Connection = con;
    String s = (cmd.ExecuteScalar() ?? String.Empty).ToString();
    con.Close();
    return s;
}
private void BindGrid()
{
    MySqlConnection con = new MySqlConnection(constr);
    MySqlCommand cmd = new MySqlCommand("SELECT * FROM rasmlar where Rasm_ID in (" + String.Join(",", getImage_ID()) + ")", con);
    MySqlDataAdapter da = new MySqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    da.Fill(dt);
    gvImages.DataSource = dt;
    gvImages.DataBind();
}
private List<int> getImage_ID()
{
    List<int> i = new List<int>();
    MySqlConnection con = new MySqlConnection(constr);
    con.Open();
    string query = "Select bosh_rasm_ID, Tugal_rasm_ID from register where students_ID='" + getUquvchilar_ID() + "'"; 
    MySqlCommand cmd = new MySqlCommand(query);
    cmd.Connection = con;
    MySqlDataReader reader = cmd.ExecuteReader();
    if (reader != null && reader.HasRows)
    {
        foreach (DbDataRecord s in reader)
        {
            if (!reader.IsDBNull(reader.GetOrdinal("bosh_rasm_ID")))
                i.Add(s.GetInt32(0));
            else
                i.Add(0);
            if (!reader.IsDBNull(reader.GetOrdinal("Tugal_rasm_ID")))
                i.Add(s.GetInt32(1));
            else
                i.Add(0);
        }
    }
    return i;
}

如果 getImage_ID() returns 一个空列表 select 语句将是 SELECT * FROM rasmlar where Rasm_ID in () ...那是一个无效的 sql 语句.. . 你必须明确地处理这种情况。