将截断字符串或二进制数据。语句已终止!急求答案!

wangquan7566 2012-10-16 10:02:35
这是我的添加数据界面


这是错误提示
http://img.my.csdn.net/uploads/201210/16/1350396174_2426.jpg

这是那一段代码
http://img.my.csdn.net/uploads/201210/16/1350396175_7590.jpg

数据库中对应字段的大小我都绝对设置够长的了!而且我在数据库里用数据库语句能插入成功!可是在程序里把插入的数据替换成了对应文本框的信息后就出现这样的错误了!不知道怎么搞的!求老师们解答!谢谢!
...全文
80274 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyaoHXgmail 2013-10-29
  • 打赏
  • 举报
回复
是因为数据库结构变了,跟你本地的不一致
zhulizhulizhuli 2013-10-15
  • 打赏
  • 举报
回复
将截断字符串或二进制数据,这个是列的数据类型的长度有问题。
zhulizhulizhuli 2013-10-15
  • 打赏
  • 举报
回复
“将截断字符串或二进制数据。”是列的数据类型长度的问题!
王子文龙 2012-10-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
引用 8 楼 的回复:
图片要设置为image



我还没有弄图片呢,数据库中也没有图片的字段,而且插入语句里也没有要插入图片。
[/Quote]
可以保存图片的路径,到时候加载
wangquan7566 2012-10-17
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 的回复:]
只是来学习的。祝早日解决
[/Quote]

谢谢,已经解决了!大家互相学习!
wangquan7566 2012-10-17
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 的回复:]
引用 24 楼 的回复:

引用 22 楼 的回复:
插入前先判断所有的combobox selectindex 是否不等于-1后再插入


数据都已经插入到了ComboBox下拉选项中了,现在我要获取从ComboBox下拉选项中选择的文本值,因为绑定了数据源所以用selectedItem得到的是一串数据地址,selectedValue和selectedText得到的都是空值...
……
[/Quote]


谢谢你了!问题已经解决了。我用的是Text属性,直接就获取到选择的文本值了
Hauk 2012-10-17
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 的回复:]

引用 22 楼 的回复:
插入前先判断所有的combobox selectindex 是否不等于-1后再插入


数据都已经插入到了ComboBox下拉选项中了,现在我要获取从ComboBox下拉选项中选择的文本值,因为绑定了数据源所以用selectedItem得到的是一串数据地址,selectedValue和selectedText得到的都是空值...
[/Quote]

使用实体绑定要设置ValueMember,用于绑定数据项。就可以用selectedValue
设置DisplayMember,用于显示。
selectedText应该都是去显示值啊
wangquan7566 2012-10-17
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 的回复:]
插入前先判断所有的combobox selectindex 是否不等于-1后再插入
[/Quote]

数据都已经插入到了ComboBox下拉选项中了,现在我要获取从ComboBox下拉选项中选择的文本值,因为绑定了数据源所以用selectedItem得到的是一串数据地址,selectedValue和selectedText得到的都是空值...
绿领巾童鞋 2012-10-17
  • 打赏
  • 举报
回复
varchar都改为nvarchar吧
绿领巾童鞋 2012-10-17
  • 打赏
  • 举报
回复
插入前先判断所有的combobox selectindex 是否不等于-1后再插入
wangquan7566 2012-10-17
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 的回复:]
引用 19 楼 的回复:

引用 17 楼 的回复:
如果你一个文本字段写入的数据,超过了预设的最大值,例如一个字段是nvarchar(50),可是你写入了60个字符,也会出现这个错误!



已经发现不是长度问题了,是我获取ComboBox选中的对象的文本值出了问题



可见调试是很重要的。
直接绑定的string可以用SelectedItem
绑定的对象的话,可能就……
[/Quote]

刚刚尝试用SelectedValue和SelectedText,两个都不是呀,获取到的都是空值 - -。
Hauk 2012-10-16
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 的回复:]

引用 17 楼 的回复:
如果你一个文本字段写入的数据,超过了预设的最大值,例如一个字段是nvarchar(50),可是你写入了60个字符,也会出现这个错误!



已经发现不是长度问题了,是我获取ComboBox选中的对象的文本值出了问题
[/Quote]


可见调试是很重要的。
直接绑定的string可以用SelectedItem
绑定的对象的话,可能就需要SelectedValue或SelectedText了。

事实上报错“将截断字符串或二进制数据。”确实是因为你的字段值太长了。(因为你取错值了)
wangquan7566 2012-10-16
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]
如果你一个文本字段写入的数据,超过了预设的最大值,例如一个字段是nvarchar(50),可是你写入了60个字符,也会出现这个错误!
[/Quote]


已经发现不是长度问题了,是我获取ComboBox选中的对象的文本值出了问题
wangquan7566 2012-10-16
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]
引用楼主 的回复:
这是我的添加数据界面


这是错误提示
http://img.my.csdn.net/uploads/201210/16/1350396174_2426.jpg

这是那一段代码
http://img.my.csdn.net/uploads/201210/16/1350396175_7590.jpg

数据库中对应字段的大小我都绝对设置够长的了!而且我在数据……
[/Quote]


受教了
  • 打赏
  • 举报
回复
如果你一个文本字段写入的数据,超过了预设的最大值,例如一个字段是nvarchar(50),可是你写入了60个字符,也会出现这个错误!
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
这是我的添加数据界面


这是错误提示
http://img.my.csdn.net/uploads/201210/16/1350396174_2426.jpg

这是那一段代码
http://img.my.csdn.net/uploads/201210/16/1350396175_7590.jpg

数据库中对应字段的大小我都绝对设置够长的了!而且我在数据库里用数据库语句能插入……
[/Quote]

sql server一个语句智能有将近8000个字符。考虑到.net使用unicode编码,实际上你的sql语句应该在4000各字符以内。
wangquan7566 2012-10-16
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
不懂调试,这个要学学啊。。。。

你先在
string sql= string.format(.......)
这句后面加一句代码,执行一下,就会弹出SQL。你看看那sql有问题没,是否取到的值很大。。

throw new Exception(sql);
[/Quote]

我得到了那句SQL语句了,贴上来给你看看:
insert into StaffInfo(StaffName,StaffSex,StaffBorn,StaffEntryDate,StaffMarry,StaffStatus,
StaffNation,StaffNativePlace,StaffEducation,StaffMajor,StaffSchool,StaffAdress,StaffSalary,
StaffEmail,StaffIdNumber,StaffPhone,StaffBankAccount,StaffDepartment,StaffPost,StaffTitle,
StaffJobNumber,StaffContractTerm,StaffContractStart,StaffContractEnd,StaffResume,StaffNote)
values
('张登','男','1983-10-16','2012-10-16','HumanManager.Yuangong.AddStaff+Marry','HumanManager.Yuangong.AddStaff+Status',
'HumanManager.Yuangong.AddStaff+Nation','湖南省娄底市','HumanManager.Yuangong.AddStaff+Education','HumanManager.Yuangong.AddStaff+Major','新华电脑学院','熙宁街69号',7000,
'zhangdeng@sina.com','431281198310160616','13073945678','6222021901013271267','HumanManager.Yuangong.AddStaff+Department','HumanManager.Yuangong.AddStaff+Post','HumanManager.Yuangong.AddStaff+Title',
3,'5','2012-10-16','2017-10-16','无','无')
我找到问题所在了,获取ComboBox控件的文本信息我用的是ComboBox.selectedItem方法。变成SQL语句后却不是选中的文本值了,可是我记得获得选中的文本值是用selectedItem方法啊....
Hauk 2012-10-16
  • 打赏
  • 举报
回复
看你还在用this.textbox取值,说明还在界面层啊。
用MessageBox.Show(sql);也可以,先把生成的SQL拿出来看看。
Hauk 2012-10-16
  • 打赏
  • 举报
回复
不懂调试,这个要学学啊。。。。

你先在
string sql= string.format(.......)
这句后面加一句代码,执行一下,就会弹出SQL。你看看那sql有问题没,是否取到的值很大。。

throw new Exception(sql);
Eric_2014SH 2012-10-16
  • 打赏
  • 举报
回复
哦,那你还是调试程序打断点来看吧
看下,到底那个参数过长
加载更多回复(11)
本课程目前总计105课时,并且不定期的进行新知识点的补充,目的是打造一部围绕MySQL的全体系课程。课程涵盖11大章节,分别是:第1章基础&技巧:这部分的重点是会讲解一些容易被开发人员忽略的技巧,例如utf8mb4字符集问题、如何使用外部临时表提高查询效率、快速创建同结构表及快速复制数据截断表和删除数据使用和差异、以及怎样使用help语句查看帮助文档。第2章六大数据类型:这部分的重点是对MySQL的8种数字类型、5种日期和时间类型、10种字符串类型、枚举类型、集合类型和时间戳类型的区别和使用进行深入讲解。第3章数据库函数大全:MySQL中有上百种函数之多,使用函数可以快速的解决我们很多开发问题,但是由于我们掌握的函数不够多,往往没有办法实际应用,本章节重点是让你掌握更多好用而你不知道的函数使用。第4章数据库引擎精讲:本章节带您深入到MySQL的体系架构,深入理解innoDB、MyISAM、MEMORY、ARCHIVE引擎的区别和使用原则。第5章数据库索引精讲:索引是保障我们查询效率的重点,本章节从逻辑存储和物理存储的底层入手,深入剖析索引的存储结构和查找方法,掌握聚簇索引、非聚簇索引、前缀索引等的存取原理和使用技巧。第6章调优工具:工欲善其事必先利其器,本章节带你掌握读写比例查询、缓存设置、执行计划和Profile调优工具。第7章参数调优和索引调优:怎么样让SQL执行的更快、数据库的性能更强,怎样充分利用索引进行不断的优化。本章节会为您讲解16种MySQL的优化策略。第8章SQL调优:SQL语句是我们日常使用的重点,怎么样写出一手高性能的SQL语句,其实是具有一定技巧的,本章节讲解8种优化策略,让数据SQL执行性能更强。第9章分库分表:在面对海量数据的时候单表和单个数据库的性能始终会存在瓶颈,本章节为您讲解分库分表的原理和技巧,怎么样使用Merge引擎分表、深入掌握MySQL数据库分区表的能力。第10章高可用架构和安全管理:本部分涵盖MySQL的高可用架构,主备架构、主从架构、主从从架构、互为主从架构。数据的同步复制、半同步复制、异步复制。主从复制原理和主从延迟的问题,以及在管理和开发层面怎样保证数据库安全。第11章MySQL日志:对MySQL的7种日志进行讲解,包括errorlog错误日志、general log查询日志、slow log慢日志、binlog 二进制日志、redlog重做日志。课程会附带配套文档和SQL脚本。有问题可以直接联系作者,24小时线上答疑。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧