web 前端 list泛型集合 sql多表查询

无法将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

img

img

img

img

使用的什么框架技术呢, 可以直接使用 List<Map<String, Object>>接收,出来的值就是键值对

img

Newtonsoft.Json,直接引用第三方的内容,直接序列化不就可以了么

以下内容部分参考ChatGPT模型:


你可以使用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; }
}

如果我的建议对您有帮助、请点击采纳、祝您生活愉快