I have a database result set I would like to return, so I create a new array for each row, and the rows into an arraylist Now when I compile it it works fine, but when I go to test out the web service it returns this nice message.

Code:
System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: The type System.String[] may not be used in this context.
   at System.Xml.Serialization.XmlSerializationWriter.WriteTypedPrimitive(String name, String ns, Object o, Boolean xsiType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write1_Object(String n, String ns, Object o, Boolean isNullable, Boolean needType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write3_ArrayOfAnyType(Object o)
   at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayListSerializer.Serialize(Object objectToSerialize, XmlSerializationWriter writer)
   at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
   --- End of inner exception stack trace ---
   at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
   at System.Xml.Serialization.XmlSerializer.Serialize(TextWriter textWriter, Object o)
   at System.Web.Services.Protocols.XmlReturnWriter.Write(HttpResponse response, Stream outputStream, Object returnValue)
   at System.Web.Services.Protocols.HttpServerProtocol.WriteReturns(Object[] returnValues, Stream outputStream)
   at System.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[] returnValues)
   at System.Web.Services.Protocols.WebServiceHandler.Invoke()
It doesn't seem to like the array[], I have no idea why.

This is the web method I am trying to make work

Code:
[WebMethod]
        public ArrayList getResults()
        {
            string sql = "select * from tblreadings";
            MySqlCommand myCommand = new MySqlCommand(sql, this.con);
            con.Open();
            MySqlDataReader myReader;
            myReader = myCommand.ExecuteReader();

            string[] columns = null;
            // Fields in a row are stored in array
            int fieldCount = myReader.FieldCount;

            // Rows are stored in arraylist
            ArrayList rows = new ArrayList();

            //string results = ""; 

            try
            {
                while (myReader.Read())
                {
                    columns = new string[fieldCount - 1];
                    columns[0] = myReader.GetString(1);
                    columns[1] = myReader.GetString(2);
                    columns[2] = myReader.GetString(3);
                    rows.Add(columns);
                }
            }
            finally
            {
                myReader.Close();
                con.Close();
            }

            return rows;
        }