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