当前位置:编程学习 > C#/ASP.NET >>

asp.net 向数据库中插入数据问题

我向数据库插入数据时 字段大小足够大  但是插入是总是报错:将截断字符串或二进制数据 

请教高手是什么导致该问题
--------------------编程问答-------------------- 是不是其他地方做了限制 --------------------编程问答-------------------- 你的数据库中要加的字段定义的长度不够    应该是varchar()里面少了 --------------------编程问答--------------------
引用楼主 qiao929119974 的回复:
我向数据库插入数据时 字段大小足够大  但是插入是总是报错:将截断字符串或二进制数据 

请教高手是什么导致该问题


贴出你的 表结构 和插入语句。
可能的原因有: 长度,格式,类型 等问题 --------------------编程问答-------------------- 数据库列的长度类型 都有可能出问题 --------------------编程问答-------------------- id int
uid int
title varchar(200)
cont varchar(3000)
price varchar(100)
counts varchar(100)
industry int
one int
two int

这时表结构 
插入数据时使用的存储过程
ALTER PROCEDURE [dbo].[proc_insert]
@tabName varchar(50),
@columns varchar(500)='',
@values varchar(7000)=''
插入语句定义为
DECLARE @insStr varchar(8000)

已经足够大了啊 --------------------编程问答-------------------- 先不执行sql语句,把sql语句打印看看有没有阶段
print @insStr --------------------编程问答-------------------- 你定义的变量的长度和你数据库里面的长度不一样,所以很有可能是你的数据长度超过了数据库中定义的长度。不信你把所有的字段长度都改成nvarchar(max)试试,就不会出现这个问题了。呵呵 --------------------编程问答-------------------- 是的 ,cont这个字段设的大一点 就不会错 但是 cont的长度没有超过3000 仍然是报错 
 我就不理解了  --------------------编程问答-------------------- 是不是插入的cont中有空格 用cont.Length  不会计算空格 但是插入数据库中是就好计算  空格的大小、


插入数据时 用不用过滤空格呢
--------------------编程问答-------------------- if (cont.Length > 3000)
        {
            js.Alert("信息内容不能大于3000字!");
            return;
        }

我判断了  但是 还是会报错 --------------------编程问答-------------------- 字段大小定义小了 --------------------编程问答-------------------- 定义字段为text --------------------编程问答-------------------- 数据类型呢? --------------------编程问答-------------------- 上面  5楼 --------------------编程问答-------------------- cont varchar(3000)

text类型

别吝啬    多给点 又不要饭他吃  

前台判断好了 就ok  --------------------编程问答-------------------- ntext类型
--------------------编程问答-------------------- 如果只给那么大 可以解决这个问题吗
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,