SQL 的索引零问题
本文关键字:问题 索引 SQL | 更新日期: 2023-09-27 18:26:39
我的sql一直遇到问题:
{
Name.Text = String.Format("{0} {1}", reader.GetString(0), reader.GetString(1));
Aboutme.Text = String.Format("{2}", reader.GetString(0));
}
索引(从零开始(必须大于或等于零?
不确定是否是我的字符串格式?
是的,字符串的第二行应该再次为 0。格式:
Aboutme.Text = String.Format("{0}", reader.GetString(0));
我的猜测是第二行代码
Aboutme.Text = String.Format("{2}", reader.GetString(0));
在这种情况下,String.Format 正在寻找 3 个参数,{0}、{1},最后是{2}。你只有一个。
你应该写它有:
Aboutme.Text = String.Format("{0}", reader.GetString(0));
问题不在于SQL的索引,而在于string.Format
的索引。这在堆栈跟踪中应该很明显,它将指向string.Format
而不是reader.GetString
。仔细查看堆栈跟踪可以为您节省各种工作量:)
在这里根本不需要格式化(鉴于您最终只会得到输入字符串(,我怀疑您想要第 2 列。(我的猜测是,毕竟这就是错误的来源。
Aboutme.Text = reader.GetString(2);
如果你真的想使用string.Format
:
Aboutme.Text = string.Format("{0}", reader.GetString(2));
有一个比公认的答案提出的更好的解决方案。 请注意,声明...
Aboutme.Text = String.Format("{0}", reader.GetString(0));
。将格式字符串和一些字符串值传递给 String.Format
, 分析格式字符串,调用ToString()
字符串值,然后将该值插入到结果中序列{0}
指示的位置。 然后,当然,它返回构造的字符串作为其结果。 因为格式字符串是"{0}"
的,所以构造的字符串将具有与参数相同的值。
如果你写这个,编写的代码和执行的算法都会更简单:
Aboutme.Text = reader.GetString(0);