using System; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Text; public class DbJsonReader { /// <summary> /// creates a json array from ms sql server data /// </summary> public DbJsonReader() { } /// <summary> /// This method takes an optional list of paramters. /// </summary> public string getJsonString(string storedProcedureName, string jsonRootName, params SqlParameter[] spParameterList) { SqlConnection sqlConnection = null; SqlDataReader dataReader = null; StringBuilder jsonStringBuilder = new StringBuilder(""); try { sqlConnection = new SqlConnection(); sqlConnection.ConnectionString = GetConnectionString(); SqlCommand cmd = new SqlCommand(); cmd.Connection = sqlConnection; cmd.CommandText = storedProcedureName; cmd.CommandType = CommandType.StoredProcedure; // optional list of parameters for stored procedure if (spParameterList.Length > 0) { for (int i = 0; i < spParameterList.Length; i++) { cmd.Parameters.Add(spParameterList[i]); } } sqlConnection.Open(); dataReader = cmd.ExecuteReader(); jsonStringBuilder.Append("{ \""); jsonStringBuilder.Append(jsonRootName); jsonStringBuilder.Append("\": ["); if (dataReader.HasRows) { while (dataReader.Read()) { jsonStringBuilder.Append(dataReader.GetString(0)); jsonStringBuilder.Append(","); } } if (jsonStringBuilder.ToString().EndsWith(",")) { jsonStringBuilder = jsonStringBuilder.Remove(jsonStringBuilder.Length - 1, 1); } } catch (Exception e) { Console.WriteLine("updateDB error: " + e.Message); } finally { if (sqlConnection != null) { sqlConnection.Close(); } if (dataReader != null) { dataReader.Close(); } } jsonStringBuilder.Append("] }"); return jsonStringBuilder.ToString(); } private string GetConnectionString() // stored in web.config { return ConfigurationManager.ConnectionStrings ["MSSQLConnectionString"].ConnectionString; } }