Voici ma question. Je veux obtenir une liste de pages utilisateur et je ne veux pas utiliser limit.je peux alors utiliser sql comme ceci:
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
code .net comme ceci:
connection.Query<T>(sql, new{Name="name"}, transaction, true,commandTimeout);
et quand je lance le programme, il lance une exception:
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
Y a-t-il une idée pour résoudre ce problème? J'espère que certains peuvent m'aider, Thx!
Si vous voulez vérifier que le nom d'utilisateur ne comporte pas de caractère spécial ou quelque chose du genre >> facile, vous pouvez créer une boucle pour chaque caractère de la chaîne et convertir char en int maintenant vous convertissez char en ascii et le vérifier par si
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
}