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 其他
展开
 我来答
hongsefeiyang1
2009-12-16 · 超过17用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:0
展开全部
你那个判断条件不唯一,如果是薪水,有20,12,16if中到底取那个值,不清楚,所以我觉得原因在这里。以薪水为例,在if语句体里面定义一个数组,存放source=薪水 的值,然后用for循环对取得的值进行累加,你试试这个办法行吗,祝你早日解决问题。
思考是一场浩劫
2009-12-14 · TA获得超过102个赞
知道答主
回答量:145
采纳率:0%
帮助的人:59.9万
展开全部
如果都为0 那就是没有取到 我的意思是让你打印r.getString("Source")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式