如何在C#中连接查询结果

问题描述 投票:1回答:2

我想在c#中连接查询结果。下面是生成的图像

enter image description here

在我的代码中,我已经完成了

using (MySqlConnection cn = new MySqlConnection(conn.ConnectionString))
        {
            string query = "SELECT m.`read_param` FROM mdc_request m WHERE m.`row_id` = @row_id";
            cn.Open();
            MySqlCommand cmd = new MySqlCommand(query, cn);
            cmd.CommandText = query;
            cmd.Parameters.AddWithValue("@row_id", iterations.row_id);

            reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                // here I want to save the result in one single variable
            }
        }

更新1

根据@Rahul的回答,我已完成以下操作

public async Task YtlbusMethod(List<Iterations> ytlbus)
    {
        MySqlConnection cn = null;
        int limitRequest = 10;
        for (int i = 10; i > 0; i--)
        {
            foreach (var item in ytlbus)
            {

                using (cn = new MySqlConnection(conn.ConnectionString))
                {
                    string query = "SELECT m.`time` FROM `mdc_meter_config` m WHERE m.`row_id` = @row_id";
                    cn.Open();
                    MySqlCommand cmd = new MySqlCommand(query, cn);
                    cmd.CommandText = query;
                    cmd.Parameters.AddWithValue("@row_id", item.row_id);

                    reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        string time = (string)reader["time"];
                        if(item.time == time)
                        {
                            int sleeptime = Convert.ToInt32(item.time);
                            sleeptime = sleeptime * 1000;

                            Thread.Sleep(sleeptime);
                            Task.Factory.StartNew(() => PortHitmethod(item));
                        }
                    }

                }

                cn.Close();


                // select query kerni hy ..jis main wohi data ay jo tu yahan pass ker raha hy... where k ander just tuny row id pass kerni hy. 

                //if(item.time== query main jo time aya hy woh)
                //{

                //}
            }
        }

    }
public async Task PortHitmethod(Iterations iterations)
    {
        MySqlConnection cn = null;
        List<string> data = new List<string>();
        using (cn = new MySqlConnection(conn.ConnectionString))
        {
            string query = "SELECT m.`read_param` FROM mdc_request m WHERE m.`row_id` = @row_id";
            cn.Open();
            MySqlCommand cmd = new MySqlCommand(query, cn);
            cmd.CommandText = query;
            cmd.Parameters.AddWithValue("@row_id", iterations.row_id);

            reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                data.Add(reader["read_param"].ToString());
            }


        }
        cn.Close();
        var single = string.Join("", data);
    }

现在,我面临的问题是我无法获取所有行数据。总行数为9,但我得到的少于该数

我该如何实现?任何帮助将不胜感激。

c# mysql concat
2个回答
2
投票

看起来像是整数值,然后可以做类似的事情

        List<int> data = new List<int>;
        while (reader.Read())
        {
            data.Add(int.Parse(reader["read_param"].ToString()));
        }

然后您可以使用string.Join()方法,如

var single = string.Join(",", data);

0
投票

基于@Rahul,您的代码应为:您的更新1是不同的代码。您想在这里实现什么?

    List<string> data = new List<string>();
    using (MySqlConnection cn = new MySqlConnection(conn.ConnectionString))
    {
        string query = "SELECT m.`read_param` FROM mdc_request m WHERE m.`row_id` = @row_id";
        cn.Open();
        MySqlCommand cmd = new MySqlCommand(query, cn);
        cmd.CommandText = query;
        cmd.Parameters.AddWithValue("@row_id", iterations.row_id);

        reader = cmd.ExecuteReader();
        while (reader.Read())
        {
            data.Add(reader["read_param"].ToString());
        }
    }

    var single = string.Join("", data);
© www.soinside.com 2019 - 2024. All rights reserved.