我已经使用SQLite管理员创建了一个数据库。它包含3个表,数据库位于文档文件夹中。此外,我还使用DBMetal为Linq创建了映射类。
在应用程序中,下面是数据库连接和向SongMasterLocal插入新数据的代码。
static SQLiteConnection con = new SQLiteConnection(@"data source=C:\\Users\\Kam\\SongDb.s3db");
SongDBML.SongDBMLDataContext dCon=null;
try
{
dCon = new SongDBML.SongDBMLDataContext(con);
SongDBML.SongMasterLocal tempSongMaster = new SongDBML.SongMasterLocal();
tempSongMaster.SongFilePath = this.FilePath;
tempSongMaster.Cleaned = true;
dCon.Connection.Open();
dCon.Connection.BeginTransaction();
dCon.GetTable<SongMasterLocal>().InsertOnSubmit(tempSongMaster);
//dCon.SongMasterLocal.InsertOnSubmit(tempSongMaster);
dCon.GetTable<NewTags>().InsertOnSubmit(tempNewTags);
dCon.SubmitChanges();
return true;
}
catch (Exception e)
{
dCon.Connection.Close();
//throw e;
}当我执行代码时,我得到这样的表错误: no SQLite exist SongMasterLocal
如果我试图使用SQLite execute命令创建一个新的表,它将抛出‘表已存在错误’。
有人能帮我解决这个问题吗?
如果您需要更多的代码或调试跟踪,请提出,我将发布它们。
发布于 2011-04-27 12:38:40
已修复此问题。问题出在由DBMetal创建的映射类(DBML文件)中,这个映射类的表名与完整名称空间的表名相同,而SQLite.It现在不能识别它了。-
https://stackoverflow.com/questions/5724658
复制相似问题