我的代码出现异常:
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]将截断字符串或二进制数据。
下面是代码
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:myweb");
Statement st=con.createStatement();
String sql="select * from student where 学号='"+xh+"'";
ResultSet rs=st.executeQuery(sql);
if(rs.next())
{ out.println("<center>本学生应经注册,添加无效!</center>");
out.println("<center><a href='javascript:history.back()'>返回</a></center>");
}
else
{
try{
String sq2="insert into student values('"+xh+"','"+xm+"','"+xb+"','"+mz+"','"+jg+"','"+cs+"','"+ss+"','"+qsz+"','"+lxd+"','"+xib+"','"+zy+"','"+zyl+"','"+xz+"','"+bj+"','"+rz+"','"+bc+"','"+bz+"')";//这里出现异常
st.executeUpdate(sq2);
}
catch(Exception e)
{ out.println(e);}
out.println("<center>添加成功!</center>");
out.println("<center><a href='studentmanagerightbottom.jsp'>返回</a></center>");
}
%>
请问该怎么处理?
为什么会出现这个问题?谢谢.
你仔细看下上边的字段,肯定是数据库设计时的表里面有一个字段的类型太小,或者类型不匹配,改一下就好了,没别的问题
或者把这句 out.println(sq2);或者System.out.println(sq2); 打出来看看。在SQL里能不能执行
st.executeUpdate(sq2);
1,st是什么?
2,insert into student values('1','2','3','4'...)用PL/SQL执行下看能通过吗