Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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
C# 将sqlite pragma encoding设置为";UTF-16“;在.net中_C#_Vb.net_Sqlite_Pragma - Fatal编程技术网

C# 将sqlite pragma encoding设置为";UTF-16“;在.net中

C# 将sqlite pragma encoding设置为";UTF-16“;在.net中,c#,vb.net,sqlite,pragma,C#,Vb.net,Sqlite,Pragma,我想将SQLite的编码设置为UTF-16。我怎样才能从代码中做到这一点? 在vb.net中非常出色,但我能够将c#转换为vb.net 我使用此url中的数据库帮助器类,该类已转换为vb.net代码: 我尝试了以下vb.net代码: dbConnection = "Data Source=database.s3db;PRAGMA encoding = ""UTF-16"";" dbConnection = "Data Source=database.s3db;"

我想将SQLite的编码设置为UTF-16。我怎样才能从代码中做到这一点? 在vb.net中非常出色,但我能够将c#转换为vb.net

我使用此url中的数据库帮助器类,该类已转换为vb.net代码:

我尝试了以下vb.net代码:

      dbConnection = "Data Source=database.s3db;PRAGMA encoding = ""UTF-16"";"
    dbConnection = "Data Source=database.s3db;"
    Dim cnn As New SQLite.SQLiteConnection(dbConnection)
    cnn.Open()
    Using cmd As SQLiteCommand = cnn.CreateCommand()
        cmd.CommandText = "PRAGMA encoding = ""UTF-16"";"
        cmd.ExecuteNonQuery()
    End Using
    cnn.Close()
但这确实有效。
在@Dai post之后,我在SQLiteDatabase助手类的构造函数中尝试了这个方法,并删除了旧数据库

vb.net代码:

      dbConnection = "Data Source=database.s3db;PRAGMA encoding = ""UTF-16"";"
    dbConnection = "Data Source=database.s3db;"
    Dim cnn As New SQLite.SQLiteConnection(dbConnection)
    cnn.Open()
    Using cmd As SQLiteCommand = cnn.CreateCommand()
        cmd.CommandText = "PRAGMA encoding = ""UTF-16"";"
        cmd.ExecuteNonQuery()
    End Using
    cnn.Close()
c#代码:


但这一点也很有效,管理员(SQLite的IDE)仍然担心它在UTF-8上的错误,SQLite PRAGMA语句被评估为SQL命令,因此不是连接字符串的一部分。这在他们的网站上有记录:

PRAGMA语句是特定于SQLite的SQL扩展,用于修改SQLite库的操作或查询SQLite库中的内部(非表)数据PRAGMA语句使用与其他SQLite命令相同的接口发出(例如SELECT、INSERT)

(强调矿山)

因此,要设置编码:

using(SQLiteCommand cmd = c.CreateCommand()) {
    cmd.CommandText = "PRAGMA encoding = \"UTF-16\"";
    cmd.ExecuteNonQuery();
}

谢谢,我更新了问题,希望你能看一下?