加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 输入字符串格式错误#2

发布时间:2020-12-15 23:44:53 所属栏目:百科 来源:网络整理
导读:我有以下要求: string sqlStr = @"Select a.Text,a.TrackKey,a.NoteType,a.TranKey,a.TranType,Case a.TranType when '1110' then 'https://www.cps/SAM/SO/RMA/RMAView.asp?key=' when '502' then 'https://www.cps/SAM/AR/InvInqDetail.asp?Key=' when '5
我有以下要求:

string sqlStr = @"Select a.Text,a.TrackKey,a.NoteType,a.TranKey,a.TranType,Case a.TranType when '1110' then 'https://www.cps/SAM/SO/RMA/RMAView.asp?key=' 
     when '502' then 'https://www.cps/SAM/AR/InvInqDetail.asp?Key=' 
     when '511' then 'https://www.cps/SAM/AR/InvInqDetail.asp?Key=' 
     when '801' then 'https://www.cps/SAM/AR/OrdInqDetail.asp?Key='
     when '1101' then 'https://www.cps/SAM/AP/POInqDetail.asp?key=' 
     when '1111' then 'https://www.cps/SAM/PO/TruckDetail.asp?truckkey=' 
     when '835' then 'https://www.cpsm/SAM/SO/RMA/RMAView.asp?key='  End HREF,Case when a.TranType = '1110' then 'M'
     when a.TranType = '502' then 'W'
     when a.TranType = '511' then 'W' 
     when a.TranType = '1101' then 'B'
     when a.TranType = '1111' then 'B'
     when a.TranType = '835' then '('  
     when (a.TranType = '801' and a.NoteType = '9') then '{'
     when (a.TranType = '801' and a.NoteType = '8') then '(' End dataicon      
    From tamTrackrEngine a 
    Where a.CreateDate > DATEADD(DAY,DATEDIFF(DAY,GetDate()),0) 
    AND (a.EmpKey = {0} OR a.EmpKey IS NULL)
    AND a.Text IS NOT NULL
    Order by a.CreateDate DESC";

    var trackrinfo = db.Database.SqlQuery<TrackrData>(sqlStr,empKey).ToList();

    var TrackrInfo = JsonConvert.SerializeObject(trackrinfo);

    Response.Write(TrackrInfo);
    HttpContext.Response.AppendHeader("Content-Type","application/json");
    return new EmptyResult();

当我运行此代码时,我收到错误:

input string was not in a correct format.

我已经输入了一个更简单的SQL查询并且没有任何问题地得到了我的结果,所以我认为它与我的查询中的一些引号有关.

这是我的StackTrace:

[FormatException: Input string was not in a correct format.] System.Text.StringBuilder.AppendFormat(IFormatProvider provider,String format,Object[] args) +10930058 System.String.Format(IFormatProvider provider,Object[] args) +63 System.Data.Entity.Core.Objects.ObjectContext.CreateStoreCommand(String commandText,Object[] parameters) +790 System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryInternal(String commandText,String entitySetName,ExecutionOptions executionOptions,Object[] parameters) +208 System.Data.Entity.Core.Objects.<>c__DisplayClass631.<ExecuteStoreQueryReliably>b__62() +45 System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction(Func1 func,IDbExecutionStrategy executionStrategy,Boolean startLocalTransaction,Boolean releaseConnectionOnSuccess) +333 System.Data.Entity.Core.Objects.<>c__DisplayClass631.<ExecuteStoreQueryReliably>b__61() +140 System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Func1 operation) +189 System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryReliably(String commandText,Object[] parameters) +335 System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQuery(String commandText,Object[] parameters) +61 System.Data.Entity.Internal.<>c__DisplayClass131.<ExecuteSqlQuery>b__12() +151 System.Lazy1.CreateValue() +415 System.Lazy1.LazyInitValue() +152 System.Lazy1.get_Value() +75 System.Data.Entity.Internal.LazyEnumerator1.MoveNext() +12 System.Collections.Generic.List1..ctor(IEnumerable1 collection) +381 System.Linq.Enumerable.ToList(IEnumerable1 source) +58 SAM3.Controllers.SharedDataController.Trackr() in c:UserscandicesteeleSourceReposSAM3SAM3ControllersSharedDataController.cs:273 lambda_method(Closure,ControllerBase,Object[] ) +62 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller,Object[] parameters) +14 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary2 parameters) +157 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary2 parameters) +27 System.Web.Mvc.Async.AsyncControllerActionInvoker.b__36(IAsyncResult asyncResult,ActionInvocation innerInvokeState) +22 System.Web.Mvc.Async.WrappedAsyncResult2.CallEndDelegate(IAsyncResult asyncResult) +29 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32 System.Web.Mvc.Async.AsyncInvocationWithFilters.b__3c() +50 System.Web.Mvc.Async.<>c__DisplayClass45.b__3e() +225 System.Web.Mvc.Async.<>c__DisplayClass45.b__3e() +225 System.Web.Mvc.Async.<>c__DisplayClass30.b__2f(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34 System.Web.Mvc.Async.<>c__DisplayClass28.b__19() +26 System.Web.Mvc.Async.<>c__DisplayClass1e.b__1b(IAsyncResult asyncResult) +100 System.Web.Mvc.Async.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27 System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult,ExecuteCoreState innerState) +13 System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +36 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +54 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +39 System.Web.Mvc.Controller.b__15(IAsyncResult asyncResult,Controller controller) +12 System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +28 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +54 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +29 System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10 System.Web.Mvc.MvcHandler.b__4(IAsyncResult asyncResult,ProcessRequestState innerState) +21 System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +36 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +54 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +31 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9657896 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously) +155

Source Error:

Line 273 var trackrinfo = db.Database.SqlQuery(sqlStr,empKey).ToList();Line 274:Line 275:

解决方法

这将是内部格式的问题.它根据堆栈跟踪调用StringBuilder.AppendFormat.该问题与SQL语句中的“{”有关.

只需使用StringBuilder即可完全测试.

下面爆炸了

System.FormatException : Input string was not in a correct format.

var sb = new StringBuilder();
sb.AppendFormat("'{' {0}",1);

您可以通过加倍{{}来解决这个问题.

var sb = new StringBuilder();
sb.AppendFormat("'{{' {0}",1);

工作得很好.

{{应该只输出一个{.加倍它逃脱了它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读