我是C#和.NET的新手,但是我编写了此代码来调用存储过程,然后我想获取返回的DataTable并将其转换为JSON。
SqlConnection con = new SqlConnection("connection string here"); SqlDataAdapter da = new SqlDataAdapter(); SqlCommand cmd = new SqlCommand("getDates", con); SqlParameter par = new SqlParameter("@PlaceID", SqlDbType.Int); par.Value = 42; da.SelectCommand = cmd; cmd.Parameters.Add(par); DataSet ds = new DataSet(); DataTable dt = new DataTable(); con.Open(); try{ cmd.CommandType = CommandType.StoredProcedure; da.Fill(ds); }
那么我的问题是最好/最简单的方法是什么?一个例子很好,因为我对此还很陌生。
代替数据表,您应该使用数据读取器。您的代码效率低下,而且有点难以阅读-您可能需要执行以下操作:
StringBuilder json = new StringBuilder(); using(SqlConnection cnn = new SqlConnection(your_connection_string)) { cnn.open(); using(SqlCommand cmd = new SqlCommand("name_of_stored_procedure", cnn)) { cmd.Paramters.AddWithValue("@Param", "value"); using(SqlDataReader reader = cmd.ExecuteReader()) { while(reader.Read()) { json.AppendFormat("{{\"name\": \"{0}\"}}", reader["name"]); } } } cnn.close(); }
然后,您可以使用json.ToString该信息
json.ToString