无法将sql 多表查询的结果导入list泛型集合中,并在ashx里面读取为json字符串
sql语句:select W_id,W_name,MT_name,W_city,W_area,W_note,W_lat,W_lng from World left join MateType on World.MT_id= MateType.MT_id
使用的什么框架技术呢, 可以直接使用 List<Map<String, Object>>接收,出来的值就是键值对
Newtonsoft.Json,直接引用第三方的内容,直接序列化不就可以了么
你可以使用ADO.NET来执行SQL查询,并将结果导入到List泛型集合中。以下是示例代码:
// 创建连接字符串
string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;";
// 创建SQL查询
string sqlQuery = "SELECT W_id, W_name, MT_name, W_city, W_area, W_note, W FROM myTable1 JOIN myTable2 ON myTable1.W_id = myTable2.W_id";
// 创建连接对象和命令对象
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand command = new SqlCommand(sqlQuery, connection))
{
// 打开连接
connection.Open();
// 执行查询并将结果导入到DataReader对象中
using (SqlDataReader reader = command.ExecuteReader())
{
// 创建List泛型集合
List<MyClass> myList = new List<MyClass>();
// 遍历DataReader对象,将每个行数据转换为MyClass对象并添加到List集合中
while (reader.Read())
{
MyClass myObject = new MyClass();
myObject.W_id = reader.GetInt32(0);
myObject.W_name = reader.GetString(1);
myObject.MT_name = reader.GetString(2);
myObject.W_city = reader.GetString(3);
myObject.W_area = reader.GetString(4);
myObject.W_note = reader.GetString(5);
myObject.W = reader.GetInt32(6);
myList.Add(myObject);
}
// 将List集合序列化为JSON字符串
string json = JsonConvert.SerializeObject(myList);
// 输出JSON字符串
context.Response.ContentType = "application/json";
context.Response.Write(json);
}
}
其中,MyClass是你自定义的类,用于存储查询结果的每一行数据。你需要根据查询结果中的列名和数据类型来定义MyClass类的属性。例如:
public class MyClass
{
public int W_id { get; set; }
public string W_name { get; set; }
public string MT_name { get; set; }
public string W_city { get; set; }
public string W_area { get; set; }
public string W_note { get; set; }
public int W { get; set; }
}