ksj12
2016-02-17 15:36
采纳率: 50%
浏览 2.7k
已采纳

将截断字符串或二进制数据问题,Java,sql

我开的长度足够大了,可是还是报错

 ![图片说明](https://img-ask.csdn.net/upload/201602/17/1455723342_499331.png)

public void actionPerformed(ActionEvent e) {
if(e.getSource()==jb1){
Connection ct=null;
Statement stm=null;
PreparedStatement ps=null;
ResultSet rs=null;
//Statement stmt=null;
try {
//加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

            //创建连接对象
            String url="jdbc:sqlserver://localhost:1433;databaseName=master";
            //注册驱动程序,打开连接
            ct=DriverManager.getConnection(url,"sa","ksj123456.");
            //预编译语句对象
            String  sql="insert into stu values(?,?,?,?,?,?)";
             ps=ct.prepareStatement(sql);
        //参数赋值
        ps.setString(1, jtf1.getText());
        ps.setString(2, jtf1.getText());
        ps.setString(3, jtf1.getText());
        ps.setString(4, jtf1.getText());
        ps.setString(5, jtf1.getText());
        ps.setString(6, jtf6.getText());
        //执行操作
        ps.executeUpdate();
        this.dispose();

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • threenewbee 2016-02-17 21:25
    已采纳

    检查你的数据库的表怎么定义的,比如学号列的长度如果是2个字符(nvarchar(2)),而你试图插入005,就会报错,别的同理。

    ps.setString(2, jtf1.getText());
    ps.setString(3, jtf1.getText());
    ps.setString(4, jtf1.getText());
    ps.setString(5, jtf1.getText());
    你确认这些都是jtf1么,我觉得应该是jtf2~5吧

    打赏 评论
  • ksj12 2016-02-17 15:38

    图片说明

    打赏 评论
  • Yiran8935 2016-02-18 01:07

    直接模拟一条可能出错的数据插入试试(SQL执行),看看是否出错,出错的话就是SQL问题,直接找SQL问题

    打赏 评论
  • Jason_WangG 2016-02-18 01:26

    字段的数据类型设置的不对,应该用image类型

    打赏 评论
  • Royal_lr 2016-02-18 01:43

    初步鉴定是连接数据库的原因,,先单独测下jdbc是否连接成功,,可能是驱动包或数据库安装的问题

    打赏 评论
  • 编程爱好者熊浪 2016-02-18 03:16

    首先断点下看看能不能执行到ps.executeUpdate();这一步,如果执行到这一步报too long,mysql数据库就把varchar改成text格式,这样就不用管它的长度,别的数据库应该也有类似的功能,到网上找下。

    打赏 评论

相关推荐 更多相似问题