MALOUDA-PSA 2025-03-11 07:11 采纳率: 85.6%
浏览 6

C#分页读取mysql 并传参数给新进程调用

int batchSize = 10;
                    int offset = 0;

                    while (true)
                    {
                        string query = $"SELECT stkcode FROM fxj ORDER BY height LIMIT {batchSize} OFFSET {offset};";
                        using (var command = new MySqlCommand(query, connection))
                        {
                            using (var reader = command.ExecuteReader())
                            {
                                bool hasRows = false;
                                while (reader.Read())
                                {
                                    hasRows = true;
                                    string stkcode = reader.GetString("stkcode");
                                    string prefix = stkcode.StartsWith("6") ? "sh" : "sz";
                                    stockCodesWithPrefix.Add($"{prefix}{stkcode}");
                                }

                                if (!hasRows) break; // 如果没有更多记录,则退出循环
                            }
                        }
                        offset += batchSize;
                    }

                    return stockCodesWithPrefix;
                }
            }
        }
    }
}
这里设置    int batchSize = 10;  为什么仍然报错:
Windows Service Called on 10/03/2025 11:42:59 下午
FileName: C:\sys\tools\curlSina.exe, Arguments: sz300869 sz301602 sz000040 sz002750 sh600083 sz300114 sh600225 sh603963 sz399001 sh600837 sz001356 sz399001 sz000040 sh600898 sh600083 sz301602 sz300114 sh603072 sz001279 sz300108 sz002305 sz001279 sz001201 sz002425 sz002721 sz002793 sz301618 sz002305 sz001201 sh600190 sz002793 sh603395 sz002872 sz002798 sh600408 sz300167 sz002314 sh603789 sh600408 sz002329 sz300957 sz002329 sz000826 sz300117 sh603001 sh603789 sz300167 sz002496 sz000826 sz001376 sh603789 sz300117 sz300957 sz301047 sz002375 sh600117 sh600136 sz002424 sz001378 sz002427 sh600804 sz002482 sz301372 sz301509 sz001378 sh600136 sz002551 
Error starting external process: 文件名或扩展名太长。

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-03-11 07:11
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解决方案

    你想使用 C# 读取 MySQL 数据库中的数据,并将数据分页传递给新进程调用。下面是一个示例代码:

    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Diagnostics;
    
    class Program
    {
        static void Main(string[] args)
        {
            // 连接字符串
            string connectionString = "Server=localhost;Database=mydatabase;User Id=root;Password=mypassword;";
    
            // 分页读取数据
            int batchSize = 10;
            int offset = 0;
    
            while (true)
            {
                // 创建连接对象
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    connection.Open();
    
                    // 创建命令对象
                    SqlCommand command = new SqlCommand("SELECT * FROM mytable LIMIT @batchSize OFFSET @offset", connection);
                    command.Parameters.AddWithValue("@batchSize", batchSize);
                    command.Parameters.AddWithValue("@offset", offset);
    
                    // 执行查询
                    SqlDataReader reader = command.ExecuteReader();
    
                    // 读取数据
                    while (reader.Read())
                    {
                        // 处理数据
                        Console.WriteLine(reader["column1"].ToString());
                    }
    
                    // 关闭读取器
                    reader.Close();
                }
    
                // 传递数据给新进程
                ProcessStartInfo startInfo = new ProcessStartInfo("newprocess.exe");
                startInfo.Arguments = "param1 param2";
                Process.Start(startInfo);
    
                // 更新偏移量
                offset += batchSize;
            }
        }
    }
    

    在上面的代码中,我们使用 SqlDataReader 读取 MySQL 数据库中的数据,并将数据传递给新进程调用。我们使用 ProcessStartInfo 创建一个新的进程,并将参数传递给该进程。

    请注意,在上面的代码中,我们假设了 mytable 表存在,并且 column1 是该表中的一个字段。你需要根据你的实际情况进行修改。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月11日