kx008yun 2010-09-29 16:50
浏览 218
已采纳

有关java的数据类型转换的问题请各位帮忙穷途末路了我

:cry: 小弟用eclipse在自己做一个java swing小程序,结果在向SQL数据库插入数据的时候显示如下错误:
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]将截断字符串或二进制数据。
文本框都是字符型的数据,而SQL是varchar类型的,由于代码都编到一个.java文件,太长了就不都粘处来了,kx在最前面都申明了。请教下除了kx2.toCharArray();这个方法外还有其他能将"bcdefg” 转换为char类型的方法吗
private String kx1,kx2,kx3,kx41,kx42,kx43,kx44,kx46,kx45,kx47,kx48,kx49,kx5,kx6,kx7,kx8,kx9,kx10,kx11,kx12,kx13,kx14,kx15,kx16,kx17,kx18,kx[][];
void insertdate(){
String sqlStr,sqlStr1,sqlStr2,cardnumber,user_name,str1,str2,bannercode,day1,day2,day3;
ResultSet result;
Statement stmt;
Connection con;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:nxtj");
System.out.println("连接成功");
stmt=con.createStatement();
System.out.println("连接成功");
kx1=t1.getText();
kx2=t2.getText();
kx3=t3.getText();
kx5=t5.getText();
kx6=t6.getText();

//char b[] = kx2.toCharArray();------这个是网上说的类型string转换char类型,但是插入数据库是出错

   //char c7=Character.valueOf(kx2).charValue();
   //System.out.println("这是:"+b);

    char c1=kx1.toString().charAt(0); 

    char c2=kx2.toString().charAt(i); 



    char c3=kx3.toString().charAt(0); 
    //char c4=kx4.toString().charAt(0); 
    char c5=kx5.toString().charAt(0); 
    char c6=kx6.toString().charAt(0); 

    sqlStr1="insert into NM01(Q1,Q2,Q3,Q4,Q5) values('" + c1 + "','" +c2+ "','" +c3 + "','" + c5 + "','" + c6 + "')";// 这里主要是C2的数据插入出现错误,kx2=“abcdefg”,
    stmt.executeUpdate(sqlStr1);
    sqlStr="select * from NM01";
    result=stmt.executeQuery(sqlStr);
    while(result.next())
       {

        cardnumber=result.getString(1);
        user_name=result.getString(2);
        day1=result.getString(3);
        day2=result.getString(4);
        day3=result.getString(5);

        System.out.println(cardnumber);
        System.out.println(user_name);
        System.out.println(day1);
        System.out.println(day2);
      /*    if(str2.equals(user_name))
        {
            //bannercode=result.getString("bannercode");


        }*/
       } 
}
catch(ClassNotFoundException e)
{
}
catch(SQLException e)
{System.err.println(e);
}
  • 写回答

1条回答 默认 最新

  • ayling520 2010-09-29 17:05
    关注

    看了一下:
    char c2=kx2.toString().charAt(i);
    i等于多少?

    还有就是数据库的类型为varchar是支持String类型的,不需要转。

    至于报 "将截断字符串或二进制数据" 异常,可能是varchar定义长度太短了,可以设置varchar(200)的长度,看还会不会报异常。另一种情况,sql写错了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable