【问题标题】:How to concatenate query result in C#如何在 C# 中连接查询结果
【发布时间】:2020-05-15 21:10:15
【问题描述】:

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

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

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,但我得到的比这少

我怎样才能做到这一点?任何帮助将不胜感激。

【问题讨论】:

  • 然后创建一个变量List&lt;string&gt;(结果似乎是字符串)并在每个循环中将当前元素从阅读器添加到列表中
  • “连接”是什么意思?您希望结果具有什么 (C#) 类型?
  • @NetMage 通过连接我的意思是我想将所有传入的数据保存到一个变量中。数据类型将是一个字符串
  • @Steve 我已经尝试过 Rahul 的方式,但仍有一些问题。你可以看到我的update 1

标签: c# mysql concat


【解决方案1】:

看起来那些是整数值然后你可以做类似的事情

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

那么你就可以使用string.Join()这样的方法

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

【讨论】:

  • var single = string.Join(",", data);using statement之外?
  • 我试过你的方法。仍然面临问题,请查看我的update 1
【解决方案2】:

基于@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);

【讨论】:

  • 数据在字符串中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-22
  • 2012-12-23
  • 2016-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多