问题描述
publicvoidUpdateScore(intbaseScore,intSpecial,stringcaseNumber){Databasedb=DatabaseFactory.CreateDatabase("EpointMis_ConnectionString");stringstrSql=(db.DbProviderFactory.ToString()!="System.Data.OracleClient.OracleClientFactory")?"updatePunish_MemberScoresetBaseScore_End=:baseScore,SpecialScore_end=@Special,EndTime=@endTimewhereCaseNumber=@caseNumber":"updatePunish_MemberScoresetBaseScore_End=:baseScore,SpecialScore_end=:special,EndTime=:endTimewhereCaseNumber=:caseNumber";DbCommandcmd=db.GetSqlStringCommand(strSql);db.AddInParameter(cmd,"baseScore",DbType.Int32,baseScore);db.AddInParameter(cmd,"special",DbType.Int32,Special);db.AddInParameter(cmd,"endTime",DbType.Date,System.DateTime.Now.ToString());db.AddInParameter(cmd,"caseNumber",DbType.String,caseNumber);db.ExecuteNonQuery(cmd);}不报错,页面一直显示请稍后,
解决方案
解决方案二:
参数一会用:,一会用@,是几个意思
解决方案三:
tBaseScore_End=:baseScore,SpecialScore_end=@Special,EndTime=@endTimewhereCaseNumber=@caseNumberORACLE参数化前缀是冒号,不是@号
解决方案四:
引用2楼starfd的回复:
tBaseScore_End=:baseScore,SpecialScore_end=@Special,EndTime=@endTimewhereCaseNumber=@caseNumberORACLE参数化前缀是冒号,不是@号
那个是微软企业库推荐方法,是可以选择数据库的,前面的是sql语句后面的是Oracle语句
解决方案五:
你本意是判断是不是Oracle的Provider,如果是就用:号,不是就是@号,但你必须每句都是同一个符号吧,你第一个为啥又有冒号又有@号