日期:2014-05-18  浏览次数:20648 次

向SQL Server 2005中插入字符,出现"......"
String user=request.getParameter("user");
String userpassword=request.getParameter("userpassword");
  Connection ct=null;
  PreparedStatement pst=null;
  ResultSet rs=null;
  try{
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  ct=DriverManager.getConnection("jdbc:odbc:mytest");
  pst=ct.prepareStatement("insert into usersTable values(?,?,null,null,null,null)");
  pst.setString(1,user.trim());
  pst.setString(2,userpassword.trim());
 
  int i=pst.executeUpdate();
  if(i!=-1) out.println("注册成功!");

在JSP中运行上面这代码,没问题,数据库中也有新的数据插入,例如:username='juan'
但是我再从数据库中读取出数据时,得到的字符长度不是 4 ,却是原来定义好的长度为50[在数据库中使用 varchar(50),navrch(50)也不行 ]
想知道要怎么样才能得到实际的长度???

------解决方案--------------------
得到的数据长度本来就是 4,你添加的是数据为
username='juan'
这个参数的长度本来就是4

取出的数据长度是数据本身的长度,而不是数据库定义的长度
------解决方案--------------------
楼主所说的得到的字符长度,是怎样得到的?
------解决方案--------------------
varchar(50)

再不行的话就处理一下吧,读取的时候 sql rtrim()函数去掉字符的空格
------解决方案--------------------
进入数据库 表 设计表 选项 把“校验和”前面的勾取消掉 试试
------解决方案--------------------
用一个中间变量试试:
String str=rs.getString('juan');
System.out.println(str.length);