Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.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# - Fatal编程技术网

C# 执行搜索填充向量时出错

C# 执行搜索填充向量时出错,c#,C#,搜索填充向量PegaTipo[]时出现返回错误,错误为: “System.NullReferenceException”:对象引用未设置为 对象的实例” 类是Pegatipo[]返回向量: public PegaTipo[] buscaFunc(string func, int ID_empresa) { SqlDataReader objReader; SqlCommand objcmd = null; PegaTipo[] re

搜索填充向量
PegaTipo[]
时出现返回错误,错误为:

“System.NullReferenceException”:对象引用未设置为 对象的实例”

类是
Pegatipo[]
返回向量:

    public PegaTipo[] buscaFunc(string func, int ID_empresa)
    {
        SqlDataReader objReader;
        SqlCommand objcmd = null;
        PegaTipo[] retornaInfo = null;
        ArrayList arr = new ArrayList();
        int t;

        vsql = "SELECT [NOME], [CPFCNPJ], [HIDE] FROM CLIENTE WHERE TIPO = @TIPO and ID_EMPRESA = @ID_EMPRESA";

        if (this.Conectar())
        {
            try
            {

                objcmd = new SqlCommand(vsql, objCon);

                objcmd.Parameters.Add(new SqlParameter("@TIPO", func));
                objcmd.Parameters.Add(new SqlParameter("@ID_EMPRESA", ID_empresa));

                objReader = objcmd.ExecuteReader();

                while (objReader.Read())
                {
                    arr.Add(objReader.GetString(0));
                    arr.Add(objReader.GetString(1));
                    arr.Add(objReader.GetBoolean(2));
                }

                t = arr.Count / 3;

                int j = 1;

                retornaInfo = new PegaTipo[t];


                for (int i = 0; i < t; i++, j++)
                {
                    retornaInfo[i].nome = Convert.ToString(arr[0 * j]);
                    retornaInfo[i].tipo = Convert.ToString(arr[1 * j]);
                    retornaInfo[i].hide = Convert.ToBoolean(arr[2 * j]);
                }

                return retornaInfo;
            }
            catch
            {
                throw;
            }
            finally
            {
                this.Desconectar();
            }
        }

        return retornaInfo;
    }

您正在初始化PegaTipo数组,但没有在数组中创建PegaTipo实例,因此以下语句:

retronainfo[i].nome=Convert.ToString(arr[0*j])

正在引发您的异常,因为RetronaInfo[i]为null。您应该在循环中执行此操作:

for (int i = 0; i < t; i++, j++)
{
    retornaInfo[i] = new PegaTipo();
    retornaInfo[i].nome = Convert.ToString(arr[0 * j]);
    retornaInfo[i].tipo = Convert.ToString(arr[1 * j]);
    retornaInfo[i].hide = Convert.ToBoolean(arr[2 * j]);
}
for(int i=0;i
for (int i = 0; i < t; i++, j++)
{
    retornaInfo[i] = new PegaTipo();
    retornaInfo[i].nome = Convert.ToString(arr[0 * j]);
    retornaInfo[i].tipo = Convert.ToString(arr[1 * j]);
    retornaInfo[i].hide = Convert.ToBoolean(arr[2 * j]);
}