Индекс (на основе нуля) должен быть больше или равен нулю - PullRequest
102 голосов
/ 15 марта 2011

Привет, я получаю сообщение об ошибке:

Индекс (на основе нуля) должен быть больше или равен нулю и меньше размера списка аргументов.

Мой код:

OdbcCommand cmd = new OdbcCommand("SELECT FirstName, SecondName, Aboutme FROM User WHERE UserID=1", cn);

OdbcDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
    Name.Text = String.Format("{0} {1}", reader.GetString(0), reader.GetString(1));
    Aboutme.Text = String.Format("{2}", reader.GetString(0));
}

Ответы [ 6 ]

170 голосов
/ 15 марта 2011

Ваш второй String.Format использует {2} в качестве заполнителя, но вы передаете только один аргумент, поэтому вы должны использовать {0}.

Изменить это:

String.Format("{2}", reader.GetString(0));

К этому:

String.Format("{0}", reader.GetString(2));
22 голосов
/ 15 марта 2011

В этой строке:

Aboutme.Text = String.Format("{2}", reader.GetString(0));

Маркер {2} недействителен, так как в парсах есть только один элемент.Используйте это вместо:

Aboutme.Text = String.Format("{0}", reader.GetString(0));
7 голосов
/ 15 марта 2011

Изменить эту строку:

Aboutme.Text = String.Format("{0}", reader.GetString(0));
3 голосов
/ 31 марта 2014

Это также может произойти при попытке выбросить ArgumentException, где вы случайно вызвали перегрузку конструктора ArgumentException

public static void Dostuff(Foo bar)
{

   // this works
   throw new ArgumentException(String.Format("Could not find {0}", bar.SomeStringProperty));

   //this gives the error
   throw new ArgumentException(String.Format("Could not find {0}"), bar.SomeStringProperty);

}
1 голос
/ 06 февраля 2018

String.Format должен начинаться с нулевого индекса "{0}", например:

Aboutme.Text = String.Format("{0}", reader.GetString(0));
1 голос
/ 28 сентября 2017
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine("Enter Your FirstName ");
            String FirstName = Console.ReadLine();

            Console.WriteLine("Enter Your LastName ");
            String LastName = Console.ReadLine();
            Console.ReadLine();

            Console.WriteLine("Hello {0}, {1} " + FirstName, LastName);
            Console.ReadLine();

        }
    }
}

Picture

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...