【发布时间】:2021-05-01 05:26:33
【问题描述】:
这是我的课程代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Student_InfoFORM
{
public partial class tblStudentform
{
public static void createStudentform(string idno, string fname, string mname, string lname, string add, string email)
{
Student_InfoFORM.studentFormEntities container = new Student_InfoFORM.studentFormEntities();
tblStudentform std = new tblStudentform
{
stud_id = idno,
firstname = fname,
midname = mname,
lastname = lname,
address = add,
emailadd = email
};
container.tblStudentforms.AddObject(std);
container.SaveChanges();
}
}
}
这是来自SaveChanges() 电话的消息:
更新条目时出错。有关详细信息,请参阅内部异常。
这是每次我保存在我的应用程序中输入的数据时的内部异常:
System.Data.UpdateException 未被用户代码处理
HResult=-2146233087
Message=更新条目时发生错误。有关详细信息,请参阅内部异常。
Source=System.Data.Entity堆栈跟踪:
在 System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter 适配器)
在 System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)
在 System.Data.Objects.ObjectContext.SaveChanges(SaveOptions 选项)
在 System.Data.Objects.ObjectContext.SaveChanges()
在 C:\Users\admin2\Documents\Visual Studio 2010\Projects\Student_InfoFORM\Student_InfoFORM\tblStudentform.cs:line 中的 Student_InfoFORM.tblStudentform.createStudentform(String idno, String fname, String mname, String lname, String add, String email) 24
在 C:\Users\admin2\Documents\Visual Studio 2010\Projects\Student_InfoFORM\Student_InfoFORM\Default.aspx.cs:line 19 中的 Student_InfoFORM._Default.Button1_Click(Object sender, EventArgs e) 在 System.Web.UI.WebControls.Button.OnClick(EventArgs e)
在 System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串 eventArgument)
在 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串 eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) 在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)内部异常:System.Data.SqlClient.SqlException
HResult=-2146232060
Message=String 或二进制数据将被截断。声明已终止。
Source=.Net SqlClient 数据提供者
错误代码=-2146232060
类=16 行号=1 号=8152
过程=""服务器=\SQLEXPRESSState=14堆栈跟踪:
在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔 breakConnection,Action1 wrapCloseInAction)at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,布尔 callerHasConnectionLock,布尔 asyncClose)在 System.Data.SqlClient .TdsParser.TryRun(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,Boolean&dataReady)在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,RunBehavior runBehavior,String resetOptionsString,Boolean isInternal,Boolean forDescribeParameterEncryption,Boolean shouldCacheForAlwaysEncrypted) 在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task & task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) 在 System.Data.SqlCli ent.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String 方法,TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 完成,String methodName,Boolean sendToPipe,Int32 超时,Boolean& usedCache,Boolean asyncWrite,Boolean inRetry)在 System.Data.SqlClient。 SqlCommand.ExecuteNonQuery() at System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator 转换器,EntityConnection 连接,Dictionary2 identifierValues, List1 generatedValues) at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager , IEntityAdapter 适配器)InnerException:
【问题讨论】:
-
当您的字段大小小于您尝试插入的值时,将出现截断的字符串或二进制数据。数据库中的字符串大小之一小于您传递的大小
-
是的。当浏览器停止加载时,它也会显示在浏览器中。
-
我该如何解决?
-
检查数据库中哪个字段大小较小。一些 varchar(100) 可能会增加或减少代码输入
-
谢谢! varchar 的工作方式与我之前放置的 char 不同。
标签: c# sql-server-2008 visual-studio-2010