Export sql data to xml and csv
Some quick remarks:


Don't start variable names with underscores unless they're class-wide private ones.
Local variables should be camelCased. OutputXML doesn't follow that rule.
Split your code into smaller methods that don't intermix data retrieval and file writing. Your method does multiple things, depending on some (odd) logic. Even its name doesn't make sense: it's called SqlExtract yet it generates CSV or XML files depending on seemingly arbitrary conditions.
Don't hardcode your connection string. Put it in a .config file and access it via the ConfigurationManager.
Why do _con.Open(); and _con.Close();? The using takes care of this.
Don't loop through table1.Rows. Instead have a method that transforms a DataRow row into a csv line and use that to construct a IEnumerable&lt;T&gt;, which you then can use in combination with string.Join(). Something like var csvContents = string.Join(Environment.NewLine, table1.Rows.Cast&lt;DataRow&gt;().Select(x =&gt; DataRowToCsvLine(x)));. That's one line (instead of 20) which expresses far better what your code does (and yes, the DataRowToCsvLine method is also a couple of lines, but it doesn't pollute the main logic).
row[1].ToString() == "END": are you sure it is always going to be "END"? Or is it possible it can be "end"? Consider using string.Equals() instead, which allows for case insensitive comparisons. Same for fileName == "item1" etc.
Properly dispose of StringWriter with a using block. Example: https://social.msdn.microsoft.com/Forums/vstudio/en-US/7d949d5c-a41c-4dc7-bbcb-429761f851d1/is-calling-flush-and-close-necesary-for-stringwriter-and-xmltextwriter?forum=netfxbcl


None of the above might improve the speed of your code, but it will make it much more maintainable and consistent.