当连接字符串包含逗号时,我从SQLite收到错误消息。我无法完全控制数据库的最终存放位置,因此用户可能会将其放置在包含任意字符的目录中。在这种情况下,似乎在连接中路径中逗号(,)的存在会导致错误。这是连接字符串:
Data Source=C:/Users/Dan/AppData/LocalLow/Gravia Software, LLC/Gravia/exampleDatabase.db;
尝试连接时会导致以下异常:
ArgumentException: Invalid ConnectionString format for parameter "LLC/Gravia/exampleDatabase.db"
似乎是连接字符串中出现逗号的问题。我尝试转义命令(\,),将整个内容用引号引起来,但这似乎无关紧要。有什么想法吗?
编辑:
我正在执行的实际代码来自以下页面:https://ornithoptergames.com/how-to-set-up-sqlite-for-unity/
var dbPath = "URI=file:" + Application.persistentDataPath + "/exampleDatabase.db";
using (var conn = new SqliteConnection(dbPath)) {
conn.Open(); // Error occurs here
// etc
}
我尝试将URI = file:更改为Data Source =,因为结果相同。
答案 0 :(得分:0)
我通过这种方式解决了
var currDir = Directory.GetCurrentDirectory();
Directory.SetCurrentDirectory(Path.GetDirectoryName(Application.streamingAssetsPath + "/DB/"));
SqliteConnection dbcon = null;
try
{
dbcon = new SqliteConnection(_Connection);
dbcon.Open();
}
catch (Exception e)
{
Debug.Log(e.Message);
return null;
}
finally
{
Directory.SetCurrentDirectory(currDir);
}
答案 1 :(得分:0)
您可以使用花括号(class EditableNameAndDescriptionModel(NameAndDescriptionModel, TimeStampedModel):
def __str__(self):
return self.name
class Meta(NameAndDescriptionModel.Meta):
from core.admin import TimeStampedNamedAndDescriptionAdmin # import it here
abstract = True
admin_class = TimeStampedNamedAndDescriptionAdmin
)对ODBC连接变量中的不受支持的字符进行转义。
因此包装您的变量,如下所示
{}