你定义的字段长度不够,插入的数据太长被截断了,你应该将字段定义长一点,比如用来存字符串的可以定义为nvarchar(200),这种类型可以自动收缩,即使你输入的是2个字符串它也不会在后面补空格~不像char类型,会显示固定长度,不够则补空格,超出则截断~
我自己一般不用dataset更新数据库的 如果你使用的数据库是SQL Server, 那么用的SqlDataAdapter的Update方法来更新数据库的数据的吧, 它是可以自己设定更新数据库的SQL语句的, 代码片段如下:
SqlDataAdapter sqlDa = null;
// 设置sqlDa
SqlCommand command = new SqlCommand(
"UPDATE tbName SET column1 = @value1, column2 = @value2 WHERE keyColumn = @keyValue", connection);
// 设置command的参数与对应列, 根据实际修改类型, 列名
commandParametersAdd("@value1", SqlDbTypeNChar, 50, "column1");
SqlParameter parameter = commandParametersAdd("@keyValue", SqlDbTypeNChar, 10, "keyColumn");
parameterSourceVersion = DataRowVersionOriginal;
sqlDaUpdateCommand = command;
// sqlDa执行更新
所以, 只把需要更新的列放到更新语句中, 那个统计列不要放在里面, 就不会发生你所说的异常了
1、确定链接字符串是否是你要更新的库;
2、检查查询语句是否是你要更新的表和字段;
3、检查session("stu_id") 的值是否是你需要更新的stu_id值。
---------
像这种问题,通常就设断点跟踪一下,然后把 str_update 的值拷贝出来,放在查询分析器里运行一下,就很容易查出来。
去除非主属性对码的部分依赖,去除主属性对码的传递函数依赖。变成4NF
去除主属性对码的传递函数依赖,所有非主属性对每一个码都是完全函数依赖。 所有的主属性对每一个不包含它的码,也是完全函数依赖。
没有任何属性完全函数依赖于非码的任何一组属性。保证以上几点,则变成BCNF
/ stmt=null; /
// sqlstring="insert into datacong(用户名,密码,真实姓名,性别,电话,Email,身份z号码)"+
// "values('"+cong_username+"','"+cong_password+"','"+cong_realname+"','"+cong_gender+"','"+cong_tel+"','"+cong_email+"','"+cong_ID+"')";
String sqlstring2="update datacong set tel=tel+1";
int i=stmtexecuteUpdate(sqlstring2);
responsesendRedirect("Login_congjsp");
注意我用/ /标注的 在先看你下面用到了这个变了你给他的值是什么自己想想吧
以上就是关于数据库更新是问什么要d出异常(将截断字符串或二进制数据)全部的内容,包括:数据库更新是问什么要d出异常(将截断字符串或二进制数据)、c#中用dataset更新数据库,但数据库表中有计算列,无法进行更新,求解。、SQL UPDATE 为什么更新不了数据库!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)