我有一个C#代码,批量处理很多插入语句.在执行这些语句时,我得到"字符串或二进制数据将被截断"错误和事务roledback.
要找出导致这种情况的insert语句,我需要在SQLServer中逐个插入,直到我遇到错误.
有没有聪明的方法来查找哪个语句和哪个字段使用异常处理导致此问题?(SQLEXCEPTION)
字符串或二进制数据将被截断.linq异常,无法找到哪个字段超过了最大长度.
我有大约350个领域.我检查每个与数据库中的字段最大长度每一个文本框最大长度,一切似乎是正确的,但我仍然得到异常.
请帮忙
我有一个大多数时间都可以运行的存储过程,但是每次都会收到一条错误消息:
Msg 8152, Level 16, State 2, Line 98
String or binary data would be truncated.
The statement has been terminated.
Run Code Online (Sandbox Code Playgroud)
如何确定导致此问题的数据字符串?
我正在尝试在Web API中为自定义模块使用此属性:
[DnnModuleAuthorize(AccessLevel = DotNetNuke.Security.SecurityAccessLevel.Edit)]
Run Code Online (Sandbox Code Playgroud)
但无论我设置什么SecurityAccessLevel,我都会得到401未经授权的响应.
我能够通过添加以下代码来使代码工作:
[AllowAnonymous]
Run Code Online (Sandbox Code Playgroud)
在方法上,并添加:
if (!ModulePermissionController.CanEditModuleContent(this.ActiveModule))
return Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "You do not have permission to access this content.");
Run Code Online (Sandbox Code Playgroud)
到我的方法的开头,但似乎这是一个我真的不应该需要的解决方法,因为它正是那个属性的用途.我正在运行DNN 7.2.1.
任何人都知道我的属性出错了吗?
我一直收到这个错误
ErrorSystem.Data.SqlClient.SqlException(0x80131904):字符串或二进制数据将被截断.该语句已终止.在System.Data.SqlClient.SqlConnection.OnError(SqlException异常,布尔breakConnection,动作
1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action
1个wrapCloseInAction)在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,布尔callerHasConnectionLock,布尔asyncClose)在System.Data.SqlClient.TdsParser. System.Data.SqlClient.SqlCommand.RunExecuteReaderTds中的System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,RunBehavior runBehavior,String resetOptionsString)中的TryRun(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,Boolean&dataReady) (CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,Boolean async,Int32 timeout,Task&task,Boolean asyncWrite,SqlDataReader ds)at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String method,TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource
1完成,字符串 方法名,布尔sendToPipe,的Int32超时,布尔asyncWrite)在System.Data.SqlClient.SqlCommand.ExecuteNonQuery()在workOrder.btnSubmit_Click(对象发件人,EventArgs e)在H:\的WebSite1\workOrder.aspx.cs:线60个ClientConnectionId: 2b010913-ba9f-4423-b6e1-2e9a038431ce
和谷歌搜索告诉我一个字符串输入太长,无法由数据库处理,但我的所有字段都足够大,我无法弄清楚这一点,
这是我的代码:
<!--Removed-->
Run Code Online (Sandbox Code Playgroud)
即使我将每个可空字段留空并且仅为其余项目输入1个字符,我也会收到此错误
编辑:表:
<!--Removed-->
Run Code Online (Sandbox Code Playgroud)
编辑:
asp代码:
<!--Removed-->
Run Code Online (Sandbox Code Playgroud)
编辑:删除所有代码以确保安全性,