Dapper for MySQL Query (string sql) sql에는 사용자 정의 변수 (@rowNum)에 특수 문자 @

c# dapper mysql

문제

여기에 내 질문입니다. 나는 사용자 페이지 목록을 얻고 싶습니다. 나는 limit.then을 사용하지 않으려 고합니다. 이렇게하면 sql을 사용할 수 있습니다.

SELECT * FROM (SELECT @rowNum:=@rowNum+1 AS rowNum,User FROM (SELECT
@rowNum:=0) r,User where User.Name=@Name ORDER BY User.Name) AS a
WHERE rowNum>=1  AND rowNum<=10

.net 코드는 다음과 같습니다.

connection.Query<T>(sql, new{Name="name"}, transaction, true,commandTimeout);

프로그램을 실행하면 예외가 발생합니다.

message: "Object reference not set to an instance of an object.",
data: { },
innerException: null,
stackTrace: " at MySql.Data.MySqlClient.MySqlConnection.get_ServerThread() at MySql.Data.MySqlClient.MySqlConnection.Abort() at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) at Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior) at Dapper.SqlMapper.<QueryImpl>d__124`1.MoveNext() at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) at Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable`1 commandTimeout, Nullable`1 commandType) at Infrastructure.Dapper.MysqlMapperExtension.QueryPaged[T](IDbConnection connection, Object condition, String table, String orderBy, Int32 pageIndex, Int32 pageSize, String columns, Boolean isOr, IDbTransaction transaction, Nullable`1 commandTimeout) in E:\Lofter\Code Source\NetCore\MermaidLoft.Alchemy\MermaidLoft.Alchemy\src\Extensions\Infrastructure.Dapper\MysqlMapperExtension.cs:line 312 at MermaidLoft.Alchemy.BaseDomain.UserDomain.UserQueryService.FindUsersForPage(String userName, Int32 pageIndex, Int32 pageSize) in E:\Lofter\Code Source\NetCore\MermaidLoft.Alchemy\MermaidLoft.Alchemy\src\Domains\MermaidLoft.Alchemy.BaseDomain\UserDomain\UserQueryService.cs:line 30 at MermaidLoft.Alchemy.QuickWeb.Controllers.HomeController.Mysql() in E:\Lofter\Code Source\NetCore\MermaidLoft.Alchemy\MermaidLoft.Alchemy\src\MermaidLoft.Alchemy.QuickWeb\Controllers\HomeController.cs:line 40",
helpLink: null,
source: "SapientGuardian.MySql.Data",
hResult: -2147467261

이 문제를 해결할 생각이 있습니까? 어떤 사람들이 저를 도울 수 있기를 바랍니다, Thx!

인기 답변

만약 당신이 사용자 이름을 확인하고 싶다면 특별한 문자가 아니거나 그와 같은 것이 아닌 것입니다. >> 그렇게 쉽게 문자열의 각 문자를 루프하고 int를 char로 변환 할 수 있습니다. char를 ascii로 변환하고 if로 검사합니다.

string x="aaaa";
foreach(char a in x)
{
     int s=(int)a;
    //(s>=65&&s<=90) capital
    //(s>=97&&s<=122) small 
    if((s>=65&&s<=90) || (s>=97&&s<=122))
               //do your code

}


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow