java在数据库中查询匹配字符串
用SQL建有数据库因为要做柱状图所以要从数据库中取出数据来但是好像是匹配字符串的问题一直读不出数据(数据库的名称都没问题第一张柱状图已经完成这是第二张)从数据库的Sour...
用SQL建有数据库 因为要做柱状图 所以要从数据库中取出数据来 但是好像是匹配字符串的问题 一直读不出数据 (数据库的名称都没问题 第一张柱状图已经完成 这是第二张)
从数据库的Source里匹配是否为"薪水","稿费","奖金","其他",如果相等,则取出相应Money中的数据
关键代码如下:
float a1=0,a2=0,a3=0,a4=0;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ce)
{
JOptionPane.showMessageDialog(null, "连接数据库失败!","错误",JOptionPane.ERROR_MESSAGE);
}
try
{
cn=DriverManager.getConnection("jdbc:odbc:pfs","","");//连接数据库
st=cn.createStatement();
r=st.executeQuery("select* from inc");
while(r.next())
{
if(r.getString("Source").equals("薪水"))
{
a1+=r.getFloat("Money");
}
else if(r.getString("Source").equals("稿费"))
{
a2+=r.getFloat("Money");
}
else if(r.getString("Source").equals("奖金"))
{
a3+=r.getFloat("Money");
}
else if(r.getString("Source").equals("其他"))
{
a4+=r.getFloat("Money");
}
}
cn.commit();
cn.close();
st.close();
}
catch(SQLException se)
{
JOptionPane.showMessageDialog(null, "数据库读取信息失败!","错误",JOptionPane.ERROR_MESSAGE);
}
试着打印了一下 a1,a2,a3,a4所取到的数据都为0
绝对是while中if语句的问题 可是又没觉得到底是哪里错了
都测试了 r.getString("Source") 取到的内容没问题
现在的问题是 if语句中的内容不执行
数据库中inc表结构是这样的:
Date Money Source
20091202 20 薪水
20081202 12 薪水
20081202 13 稿费
20081202 14 奖金
20081202 16 薪水
20091205 24 其他
20091205 55 稿费
20091205 66 奖金
20091205 11 其他 展开
从数据库的Source里匹配是否为"薪水","稿费","奖金","其他",如果相等,则取出相应Money中的数据
关键代码如下:
float a1=0,a2=0,a3=0,a4=0;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ce)
{
JOptionPane.showMessageDialog(null, "连接数据库失败!","错误",JOptionPane.ERROR_MESSAGE);
}
try
{
cn=DriverManager.getConnection("jdbc:odbc:pfs","","");//连接数据库
st=cn.createStatement();
r=st.executeQuery("select* from inc");
while(r.next())
{
if(r.getString("Source").equals("薪水"))
{
a1+=r.getFloat("Money");
}
else if(r.getString("Source").equals("稿费"))
{
a2+=r.getFloat("Money");
}
else if(r.getString("Source").equals("奖金"))
{
a3+=r.getFloat("Money");
}
else if(r.getString("Source").equals("其他"))
{
a4+=r.getFloat("Money");
}
}
cn.commit();
cn.close();
st.close();
}
catch(SQLException se)
{
JOptionPane.showMessageDialog(null, "数据库读取信息失败!","错误",JOptionPane.ERROR_MESSAGE);
}
试着打印了一下 a1,a2,a3,a4所取到的数据都为0
绝对是while中if语句的问题 可是又没觉得到底是哪里错了
都测试了 r.getString("Source") 取到的内容没问题
现在的问题是 if语句中的内容不执行
数据库中inc表结构是这样的:
Date Money Source
20091202 20 薪水
20081202 12 薪水
20081202 13 稿费
20081202 14 奖金
20081202 16 薪水
20091205 24 其他
20091205 55 稿费
20091205 66 奖金
20091205 11 其他 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询