2 ksj12 ksj12 于 2016.02.17 23:36 提问

将截断字符串或二进制数据问题,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个回答

caozhy
caozhy   Ds   Rxr 2016.02.18 05: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
ksj12 谢谢了,我真的眼瞎了
2 年多之前 回复
wangchixiao
wangchixiao   Rxr 2016.02.18 09:26

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

ksj12
ksj12   2016.02.17 23:38

图片说明

Yiran8935
Yiran8935   2016.02.18 09:07

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

Royal_lr
Royal_lr   Ds   Rxr 2016.02.18 09:43

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

xionglangs
xionglangs   Rxr 2016.02.18 11:16

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于异常SQLServerException: 将截断字符串或二进制数据
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]将截断字符串或二进制数据。 在完成毕业设计的时候总是碰见了这个烦人的异常,现给出解决方法 主要原因就是你增加的数据字段长度超过数据库中字段所定义长度,去查看一下自己数据库中的字段的长度,一般是误写出来的,查看一下自己数据库中需要自己设置字段
SQL错误:将截断字符串或者二进制数据
SQL在创建数据库存储数据时提示:将截断字符串或者二进制数据的错误问题解决:增大数据项的长度
Sql server提醒8152错误:将截断字符串或二进制数据
如图: 原       因:由于数据库的某个字段长度不够导致。 解决方法:查找出该字段,加长字段长度,一般将这个字段的类型改为varchar(),可以加长。即可解决。
SQL数据库之将截断字符串或二进制数据 语句已终止
今天使用数据库的时候,遇见这样的错误: 成因分析: 自己在设计数据库的时候,将表的某些属性的域的长度设置的小了: 而我在填写的对应的数据长度是超过了数据库属性长度的设计,这样,在将数据录入数据库的时候,会将数据截断。 解决方案: 扩充数据库对应属性的长度: ~~~~~~~~~~完美解决了~~~~~~~~~~~~~~~~~~~~
Sql Server 将截断字符串或二进制数据
今天在创建数据库表的时候,出现了这个问题 消息 8152,级别 16,状态 14,第 1 行 将截断字符串或二进制数据. 语句已终止.(好悲伤呀) 原来是因为我表中有一个记录的varchar(50)这个长度设置的小了。 建议:如果字段较长不好控制,可以设置varchar(max)试一试
往数据库插入数据提示“将截断字符串或二进制数据”
往数据库插入数据时出现错误“将截断字符串或二进制数据”。 在网上找了下,是插入的数据超过了数据库中字段的长度,这个问题尤其是在插入中文时特别容易出现。 这个时候同学你应该把SQL语句给粘出来看看,特别是中文字符的字段,然后打开表设计看看哪个字段超过了字段的长度,修改即可
将截断字符串或者二进制数据,语句已终止------sqlserver报错
原本我表中字段的数据类型是text,按我原本的设想存图文混排是没有问题的,但是我在删除的时候出现了将截断字符串或者二进制数据,语句已终止,这个错误,然后百度查了一下发现下面这个: 如果是sql2000升级到sql2005 原因就是有某个字段的类型有问题需要修改一下。可能是ntext或者其它字段。在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max)、nvarcha
[Err] 22001 - [SQL Server]将截断字符串或二进制数据。
问题描述: 数据库 插入数据时,报错 [Err] 22001 - [SQL Server]将截断字符串或二进制数据。 01000 - [SQL Server]语句已终止。 问题原因: 添加的字符串长度,超过设置的varchar长度 问题处理: 减字符串长度 , 或 增 varchar长度...
com.microsoft.sqlserver.jdbc.SQLServerException: 将截断字符串或二进制数据。
org.springframework.dao.DataIntegrityViolationException: ### Error updating database.  Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 将截断字符串或二进制数据。 ### The error may involve ParkEnDaySum.s
解决“将截断字符串或二进制数据。语句已终止……”的问题
    下午在对群组数据更新操作的时候,更改后数据并未提交到数据库,查看日志记录,一直提示出现“将截断字符串或二进制数据。语句已终止……”的错误。    断点跟踪调试SQL语句也都是正确的。郁闷...    Google一把先,看了博客园上面的一篇文章:    http://www.cnblogs.com/olive_cai/archive/2006/05/10/396021.html    我终