想做一个投票评论记票!
我在sql server2000里面建了一个表!
good bad common num(记投票的人数)且都是int型 我有一行数据 0,0,0,1
我的想法是从中取一行记录,然后根据用户的投票来做了处理后写到数据库中,把原来的那一条给删除!(以后来实现)
现在做的是我不统计人数,直接update数据库中的内容!
我定义了int good1=0;
int bad1=0;
int common1=0;
经过投票处理后
执行下面代码时出错了!
String sql2="update vote set good='+good1+', common='+common1+ ', bad='+bad1+' where num=1";
stmt.executeUpdate(sql2);
报的错误是 :[SQLServer]将 varchar 值 '+bad1+' 转换为数据类型为 int 的列时发生语法错误。
那么说明是我的sql语句错误 我不知道怎么弄啊!我定义的bad1为int型的
以下是我详细代码:高手要指点我出错的原因哦1很可能是很小的毛病!!
</head>
<body>
<%
String vote=request.getParameter("vote");
int good1=0;
int bad1=0;
int common1=0;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=bookstore";
Connection conn=DriverManager.getConnection(url,"sa","sa");
Statement stmt=conn.createStatement();
String sql="select * from vote ";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next())
{ out.print("true");
good1=rs.getInt("good");
bad1=rs.getInt("bad");
common1=rs.getInt("common");
if(vote.compareTo("good")==0)
{
good1++;
out.print("good!");
}
else
if(vote.compareTo("common")==0)
{
common1++;
out.print("common");
}
else
{
bad1++;
out.print("bad");
}
}%>
<%
String sql2="update vote set good='+good1+', common='+common1+ ', bad='+bad1+' where num=1";
stmt.executeUpdate(sql2);
rs.close();
stmt.close();
conn.close();
%>
<p>谢谢您的投票!</p>
<p>本站共有<%=good1+common1+bad1 %>人参与投票:</p>
<p>其中认为好的有</p><%=good1%>
<p>认为一般的有</p><%=common1%>
<p>认为不好的有</p><%=bad1%>
</body>