Rellenando una tabla de datos en C # usando MySQL

Estoy intentando rellenar un DataTable con resultados extraídos de una base de datos MySQL, sin embargo, el DataTable, aunque está inicializado, no se llena. Quería usar este DataTable para llenar un ListView. Esto es lo que tengo para la configuración de la tabla de datos:

    public DataTable SelectCharacters(string loginName)
    {
        this.Initialise();
        string connection = "0.0.0.0";
        string query = "SELECT * FROM characters WHERE _SteamName = '" + loginName + "'";

        if (this.OpenConnection() == true)
        {
            MySqlCommand cmd = new MySqlCommand(query, connection);
            MySqlDataAdapter returnVal = new MySqlDataAdapter(query,connection);
            DataTable dt = new DataTable("CharacterInfo");
            returnVal.Fill(dt);
            this.CloseConnection();
            return dt;
        }
        else
        {
            this.CloseConnection();
            DataTable dt = new DataTable("CharacterInfo");
            return dt;            
        }
    }

Y para el llenado del ListView, tengo:

 private void button1_Click(object sender, EventArgs e)
    {
        string searchCriteria = textBox1.Text;

        dt = characterDatabase.SelectCharacters(searchCriteria);
        MessageBox.Show(dt.ToString());

        listView1.View = View.Details;

        ListViewItem iItem;
        foreach (DataRow row in dt.Rows)
        {
            iItem = new ListViewItem();
            for (int i = 0; i < row.ItemArray.Length; i++)
            {
                if (i == 0)
                    iItem.Text = row.ItemArray[i].ToString();
                else
                    iItem.SubItems.Add(row.ItemArray[i].ToString());
            }
            listView1.Items.Add(iItem);
        }
    }

¿Se me escapa algo? El cuadro de mensaje se incluyó para que pudiera ver si se ha llenado, sin suerte.

Gracias por cualquier ayuda que usted puede dar.

Respuestas a la pregunta(5)

Su respuesta a la pregunta