c # – Make the code more flexible

Basically, I'm loading information about the selected provider using the mysql query. I've created a method with a list as the return type, and then another method for assigning values ​​from a list. I wonder if there is a better way to do things.

P.S. The vendorCrud object is a database wizard.

    private list GetVendorInformation (string vendorId)
crud vendorCrud = new crud ();
listing columnData = new list();

string query = String.Format ("SELECT tin, email_add, fax_no, tel_no, contact.contact_person FROM lib_inv_vendor vendor" +
"LEFT JOIN lib_inv_vendor_contact_person contact ON vendor.vendor_id = contact.vendor_id" +
"WHERE vendor.vendor_id = {0} ORDER BY contact_default DESC LIMIT 1", vendorId);

vendorCrud.load_data (query, Modules.connection.filesetupDB1, CommandType.Text);

foreach (DataRow element in vendorCrud.table.Rows)
columnData.Add (item["tin"].ToString ());
columnData.Add (item["email_add"].ToString ());
columnData.Add (item["fax_no"].ToString ());
columnData.Add (item["tel_no"].ToString ());
columnData.Add (item["contact_person"].ToString ());

return columnData;

private void SetVendorInformation (List colData)
txtVendorTin.EditValue = colData[0];
txtEmail.EditValue = colData[1];
txtFaxNo.EditValue = colData[2];
txtTelNo.EditValue = colData[3];
txtAttention.EditValue = colData[4];

private void txtSupplier_EditValueChanged (object sender, EventArgs e)
SetVendorInformation (GetVendorInformation (txtSupplier.EditValue.ToString ()));