Индекс (отсчитываемый от нуля) должен быть больше или равен нулю
Эй, я продолжаю получать сообщение об ошибке:
(отсчитываемый от нуля) должен быть больше или равен нулю и меньше, чем размер списка аргументов.
мой код:
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 ответов:
второй
String.Formatиспользует{2}в качестве заполнителя, но вы передаете только один аргумент, поэтому вы должны использовать .изменить это:
String.Format("{2}", reader.GetString(0));для этого:
String.Format("{0}", reader.GetString(2));
в этой строке:
Aboutme.Text = String.Format("{2}", reader.GetString(0));маркер {2} является недопустимым, потому что у вас есть только один элемент в parms. Используйте этот код:
Aboutme.Text = String.Format("{0}", reader.GetString(0));
Это также может произойти при попытке бросить
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); }
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(); } } }
строку.Формат должен начинаться с нулевого индекса "{0} " Вот так:
Aboutme.Text = String.Format("{0}", reader.GetString(0));

Comments