首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 求教 将截断字符串或二进制数据。语句以终止. [已结贴,结贴人:lakerskobe_wuxin]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-26 00:58:27 楼主
    今天在处理项目的时候出现了上述的话并且 报错信息为
    C# code
    /gougouoa”应用程序中的服务器错误。 -------------------------------------------------------------------------------- 将截断字符串或二进制数据。 语句已终止。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 将截断字符串或二进制数据。 语句已终止。 源错误: 行 67: cmd.CommandText = strSql; 行 68: cmd.Connection = conn; 行 69: cmd.ExecuteNonQuery(); 行 70: //conn.Close(); 71: //conn.Dispose(); 源文件: d:\gougouoa\App_Code\WebService.cs 行: 69 堆栈跟踪: [SqlException (0x80131904): 将截断字符串或二进制数据。 语句已终止。] System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +98 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +82 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +346 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +3430 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) +273 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +367 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +149 WebService.ExcuteSql(String strSql) in d:\gougouoa\App_Code\WebService.cs:69 guanli_guanlitree_qingjia.Button1_Click(Object sender, EventArgs e) in d:\gougouoa\guanli\guanlitree\qingjia.aspx.cs:33 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +96 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +116 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +31 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +32 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +72 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3825 -------------------------------------------------------------------------------- 版本信息: Microsoft .NET Framework 版本:2.0.50727.1433; ASP.NET 版本:2.0.50727.1433

    我在设置断点后发现输入TEXTBOX的字符串不能转换为SERTING 而是以下面这种形式出现 strsql=null
    SQL code
    insert into Absenteeisminfo(Name,Datetime,Date,Subject) values('System.Web.UI.WebControls.TextBox','System.Web.UI.WebControls.TextBox','System.Web.UI.WebControls.TextBox','System.Web.UI.WebControls.TextBox');

    请问各位老师要怎么写才能把TEXTBOX的书写文本变成STRING 然后输入到库内那?
    C# code
    public partial class guanli_guanlitree_qingjia : System.Web.UI.Page { //private string strSql = null; WebService webs = new WebService(); protected void Page_Load(object sender, EventArgs e) { } protected void Button2_Click(object sender, EventArgs e) { Response.Redirect("~/guanli/guanlitree/qingjia.aspxd"); } protected void Button1_Click(object sender, EventArgs e) { if (Page.IsValid) { string strName = this.tbName.Text; string strDatetime = this.tbDatetime.Text; string strDate = this.tbDate.Text; string strSubject = this.tbSubject.Text; string strSql = "insert into Absenteeisminfo(Name,Datetime,Date,Subject) values('" + tbName + "','" + tbDatetime + "','" + tbDate + "','" + tbSubject + "');"; webs.ExcuteSql(strSql); Response.Redirect("~/guanli/guanlitree/kuanggong.aspx"); } } }
    上面是我书写的代码
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cooolbin
    • 等级:
    发表于:2008-06-26 01:04:451楼 得分:4
    string strSql = "insert into Absenteeisminfo(Name,Datetime,Date,Subject) values('" + tbName + "','" + tbDatetime + "','" + tbDate + "','" + tbSubject + "');";
    这个最后为什么有两个分号?打错了还是多打了?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-26 01:10:222楼 得分:0
    没写错 不过改了也不成的 一个样子 断点还是那样 错误信息不变
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-26 01:15:253楼 得分:4
    你要插入的数据长度大于你在数据库中设置的字段长度,当你insert时,将截断字符串、请核查每个字段的长度。把SQL放入查询分析器中执行。会发现错误!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-26 01:19:224楼 得分:4
    出现这个错误,很多时候是因为你的要插入的某个字符串的长度超出了数据库表中字段定义的长度,
    也就是Textbox中输入的字符串的长度超过了对应字段定义的长度,检查一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cooolbin
    • 等级:
    发表于:2008-06-26 01:20:145楼 得分:4
    还有出现这个错误

    将截断字符串或二进制数据。
    语句已终止。


    一般都是你插入数据库的字符长度超出你数据库字段的长度。
    你先看下要插入的字符串的长度是否超出Name,Datetime,Date,Subject这几个字段的长度
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-26 01:21:036楼 得分:0
    没啊 我输入一个字符都不成 长度没多大的
    create table Absenteeisminfo
    (
    ID int primary key,
    Name varchar(30) not null,
    Datetime varchar(50) not null,
    Date tinyint not null,
    SubJect varchar(50) not null
    )
    这个是那张表 我输入的是 1,1,1,1这样都不成 还有我设置主键自动增长了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-26 01:24:247楼 得分:4
    SQL语句拼错了,改成
    strSql = "insert into Absenteeisminfo(Name,Datetime,Date,Subject) values('" + strName + "','" + strDatetime + "','" + strDate + "','" + strSubject + "');";
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-26 01:29:238楼 得分:0
    郁闷了 谢谢  太马虎了 下次一定注意
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved