C# 将sqlite pragma encoding设置为";UTF-16“;在.net中
我想将SQLite的编码设置为UTF-16。我怎样才能从代码中做到这一点? 在vb.net中非常出色,但我能够将c#转换为vb.net 我使用此url中的数据库帮助器类,该类已转换为vb.net代码: 我尝试了以下vb.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;"
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();
}
谢谢,我更新了问题,希望你能看一下?