Я только что заметил ситуацию, когда нужно использовать String.Format или интерполированную строку вместо обычной составной строки.
SqlConnection myConnection = new SqlConnection("......");
SqlDataAdapter myDataAdapter1 = new SqlDataAdapter("SELECT userAddress FROM tblUserData WHERE userName = '" + userName + "'", myConnection);
SqlDataAdapter myDataAdapter2 = new SqlDataAdapter("SELECT userAddress FROM tblUserData WHERE userName = '{0}'", userName, myConnection);
SqlDataAdapter myDataAdapter3 = new SqlDataAdapter(String.Format("SELECT userAddress FROM tblUserData WHERE userName = '{0}'", userName), myConnection);
SqlDataAdapter myDataAdapter4 = new SqlDataAdapter($"SELECT userAddress FROM tblUserData WHERE userName = '{userName}'",myConnection);
myDataAdapter2 не работает из-за неверных параметров.
(Да, обычно инструкция SELECT присваивается строковой переменной.)