Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 参数'';已经定义了_C#_Mysql - Fatal编程技术网

C# 参数'';已经定义了

C# 参数'';已经定义了,c#,mysql,C#,Mysql,我在网上找到了一些关于这个问题的解决方案和建议,但是,我还无法将其应用到我的解决方案中。我写了一个个人MySQL包装器,它的特点是 public async Task<IEnumerable<DatabaseFieldSet>> QueryParamsAsync(string query, string[] parameter, string[] value) { if (!IsConnected) awai

我在网上找到了一些关于这个问题的解决方案和建议,但是,我还无法将其应用到我的解决方案中。我写了一个个人MySQL包装器,它的特点是

public async Task<IEnumerable<DatabaseFieldSet>> QueryParamsAsync(string query, string[] parameter,
        string[] value)
    {
        if (!IsConnected)
            await ConnectAsync();
        var rows = new List<DatabaseFieldSet>();

        using (var cmd = CreateCommand(query))
        {
            foreach (var str in parameter)
            {
                foreach (var val in value)
                {
                    //cmd.Parameters.Add(str, MySqlDbType.VarChar).Value = val;
                    cmd.Parameters.AddWithValue(str, val);
                }
            }
            using (var reader = await cmd.ExecuteReaderAsync())
            {
                uint currentRowIndex = 0;

                while (await reader.ReadAsync())
                {
                    var row = new DatabaseFieldSet(currentRowIndex);
                    var fields = new List<DatabaseField>();

                    for (var i = 0; i < reader.FieldCount; ++i)
                    {
                        var column = new DatabaseReference((uint) i);
                        fields.Add(new DatabaseField(reader[i], column, row));
                    }

                    row.Fields = fields;
                    rows.Add(row);

                    currentRowIndex++;
                }
            }
        }

        return rows;
    }

在不同的位置,没有一个在执行时工作或抛出致命错误。我希望有人能告诉我把这句话放在哪里。

你做错了。它应该像下面这样。您的double
foreach
导致了问题,并且您最终尝试再次添加相同的参数,因此出现了错误。您应该定义一个计数器变量并访问值数组中的每个项

        int i = 0;
        foreach (var str in parameter)
        {
                cmd.Parameters.AddWithValue(str, val[i]);
                i++;
        }

你做错了。它应该像下面这样。您的double
foreach
导致了问题,并且您最终尝试再次添加相同的参数,因此出现了错误。您应该定义一个计数器变量并访问值数组中的每个项

        int i = 0;
        foreach (var str in parameter)
        {
                cmd.Parameters.AddWithValue(str, val[i]);
                i++;
        }

非常感谢。我完全疯了!非常感谢。我完全疯了!