数据库中的日期格式是"2010/8/14",用SubString()方法取出月份"8",
书上用SubString(6,1),
字符串"2010/8/14"索引6不是"/"吗?怎么会是"8"呢?请高手解惑!参考代码如下:其中Ydate代表月份,取值:1到12
string sql1 = "select * from tb_prize where UserID='" + id + "'";
DataSet ds1 = operate.GetTable(sql1);//得到数据集
ds1.Dispose();//释放资源
string str = "select count(*) from tb_prize where UserID='" + id + "'";
int i = operate.HumanNum(str);//获取记录数量
if (i > 0)
{
if (ds1.Tables[0].Rows[0][8].ToString().Substring(6, 1) == Ydate)
{
txtYjiangli.Text = ds.Tables[0].Rows[0][6].ToString();//得到奖励信息
txtYfakuan.Text = ds.Tables[0].Rows[0][7].ToString();//得到罚款信息
}
else
{
txtYfakuan.Text = "0";//得到罚款信息
txtYjiangli.Text = "0";//得到奖励信息
}
}
书上用SubString(6,1),
字符串"2010/8/14"索引6不是"/"吗?怎么会是"8"呢?请高手解惑!参考代码如下:其中Ydate代表月份,取值:1到12
string sql1 = "select * from tb_prize where UserID='" + id + "'";
DataSet ds1 = operate.GetTable(sql1);//得到数据集
ds1.Dispose();//释放资源
string str = "select count(*) from tb_prize where UserID='" + id + "'";
int i = operate.HumanNum(str);//获取记录数量
if (i > 0)
{
if (ds1.Tables[0].Rows[0][8].ToString().Substring(6, 1) == Ydate)
{
txtYjiangli.Text = ds.Tables[0].Rows[0][6].ToString();//得到奖励信息
txtYfakuan.Text = ds.Tables[0].Rows[0][7].ToString();//得到罚款信息
}
else
{
txtYfakuan.Text = "0";//得到罚款信息
txtYjiangli.Text = "0";//得到奖励信息
}
}
写个test程序运行一下就确定了。
public class SubstringTest {
public static void main(String[] args) {
String str = "123456";
System.out.println(str.substring(3, 4));
System.out.println(str.substring(6, 1));
}}
4
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -5
at java.lang.String.substring(Unknown Source)
at SubstringTest.main(SubstringTest.java:11)测试一下就明白了,SubString(6,1)这种写法是不对的吧?而且索引为6的地方的确是/
没解决 这个问题我包了
Subtring么 呵呵 我还是有这个自信的
C#中的数组是从0位开始,如果像是VB的话,那么就是“8”啦