Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java(netbeans)、windows在sqlite中进行数据排序_Java_Windows_Sqlite_Sorting_Netbeans - Fatal编程技术网

使用java(netbeans)、windows在sqlite中进行数据排序

使用java(netbeans)、windows在sqlite中进行数据排序,java,windows,sqlite,sorting,netbeans,Java,Windows,Sqlite,Sorting,Netbeans,我正在使用sqlite。除了分类,我没有问题。当我使用“order by”查询表时 第I条无法按照iso8859-9字符集进行正确排序。这个 我的编码的特殊字符显示在列表的末尾。 就像: - asdf - bnm - cgfj - dfgh - çdfg 但我想要的是: - asdf - bnm - cgfj - çdfg - dfgh 我能做些什么来克服这个问题 提前谢谢 使用: 窗户, netbeans, JAVA sqlite您可以定义一个新的排序序列,看看是否要从

我正在使用sqlite。除了分类,我没有问题。当我使用“order by”查询表时 第I条无法按照iso8859-9字符集进行正确排序。这个 我的编码的特殊字符显示在列表的末尾。 就像:

 - asdf
 - bnm
 - cgfj
 - dfgh
 - çdfg
但我想要的是:

 - asdf
 - bnm
 - cgfj
 - çdfg
 - dfgh
我能做些什么来克服这个问题

提前谢谢

使用:

窗户, netbeans, JAVA
sqlite

您可以定义一个新的排序序列,看看是否要从sqlite解决排序问题。非常相似的东西。在您的情况下,可能需要使用:
CultureInfo.CreateSpecificCulture(“tr”)而不是
CultureInfo.CreateSpecificCulture(“ru-ru”)

比如:

using System.Data.SQLite;
using System.Globalization;

namespace SQLiteUTF8CIComparison {
    /// <summary />
    /// This function adds case-insensitive sort feature to SQLite engine 
    /// To initialize, use SQLiteFunction.RegisterFunction() 
    /// before all connections are open 
    /// </summary />
    [SQLiteFunction(FuncType = FunctionType.Collation, Name = "UTF8CI")]
    public class SQLiteCaseInsensitiveCollation : SQLiteFunction {
        /// <summary />
        /// CultureInfo for comparing strings in case insensitive manner 
        /// </summary />
        private static readonly CultureInfo _cultureInfo = 
            CultureInfo.CreateSpecificCulture("tr-TR");

        /// <summary />
        /// Does case-insensitive comparison using _cultureInfo 
        /// </summary />
        /// Left string
        /// Right string
        /// <returns />The result of a comparison</returns />
        public override int Compare(string x, string y) {
            return string.Compare(x, y, _cultureInfo, CompareOptions.IgnoreCase);
        }
    }
}   
使用System.Data.SQLite;
利用制度全球化;
名称空间SQLITEUTF8C比较{
/// 
///此函数向SQLite引擎添加不区分大小写的排序功能
///要初始化,请使用SQLiteFunction.RegisterFunction()
///在所有连接打开之前
/// 
[SQLiteFunction(FuncType=FunctionType.Collation,Name=“UTF8CI”)]
公共类SQLiteCaseInsensitiveCollation:SQLiteFunction{
/// 
///CultureInfo,用于以不区分大小写的方式比较字符串
/// 
私有静态只读CultureInfo\u CultureInfo=
CultureInfo.CreateSpecificCulture(“tr”);
/// 
///是否使用_cultureInfo进行不区分大小写的比较
/// 
///左弦
///右字符串
///比较的结果
公共覆盖整型比较(字符串x、字符串y){
返回string.Compare(x,y,_cultureInfo,CompareOptions.IgnoreCase);
}
}
}   
如果您的需求允许,一个简单的替代方法是从sqlite中检索未排序的数据并用Java进行排序。请注意,仅当您没有选择大量(数百万)记录时,使用此方法才合适,因为它将消耗大量内存