我连接到我的sqlitedb时遇到错误。
我使用Firefox Sqlite Addon创建了我的sqlitedb。
MyConn:(webconfig)
<connectionStrings>
<add name="TARKMANCAS_CONNECTION" connectionString="Data Source=C:/TARKMANCAS_DB.sqlite;"/>
</connectionStrings>
MyClass的:
public TarkBaseDb()
: base("TARKMANCAS_CONNECTION")
{
}
// start
//
public Table<TarkBaseSchema.KadroGrubuCls> KadroGrubu { get { return GetTable<TarkBaseSchema.KadroGrubuCls>(); } }
TarkBaseSchema:
[TableName("EGITIM_KADROSU_GRUBU_TAB")]
public class KadroGrubuCls
{
private TarkBaseDb db = new TarkBaseDb();
#region Contructors
public KadroGrubuCls()
{
using (db)
{
var qry = from x in db.KadroGrubu
select x;
foreach (var rec_ in qry)
{
KadroGrubuId = rec_.KadroGrubuId;
KadroGrubu = rec_.KadroGrubu;
}
}
}
#endregion
#region Data Items
[MapField("KADRO_GRUBU_ID")]
[PrimaryKey, NotNull]
public int KadroGrubuId { get; set; }
[MapField("KADRO_GRUBU")]
public string KadroGrubu { get; set; }
#endregion
#region Relations
#endregion
#region Public Methods
public KadroGrubuCls Get()
{
return (new KadroGrubuCls());
}
#endregion
}
试一下电话:
TarkBaseSchema.KadroGrubuCls _tarkKadro = _tarkKadro.Get();
我收到了错误:
A network-related or instance-specific error occurred while establishing a connection to
SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections.
(provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
答案 0 :(得分:2)
错误消息显示它正在尝试连接到SQL Server,而不是SQLite。
更改连接字符串以选择正确的驱动程序 (并且“数据”和“来源”之间有两个空格。)
答案 1 :(得分:1)
我认为这是我的答案;)
最佳解决方案 - 使用linq2db
如果您不想使用 linq2db ,请按照以下步骤使用 bltookit 连接到sqlite数据库。
安装nuget包(或手动下载)
PM> Install-Package BLToolkit.SQLite
PM> Install-Package System.Data.SQLite.Core
<configuration>
<!-- 1 : Add providers to BLToolkit -->
<bltoolkit>
<dataProviders>
<add type="BLToolkit.Data.DataProvider.SQLiteDataProvider, BLToolkit.Data.DataProvider.SQLite.4" />
</dataProviders>
</bltoolkit>
<!-- 2 : Add connection string with the appropriate provider field -->
<appSettings>
<add key="ConnectionString.SQLite.localdb" value="Data Source=C:/TARKMANCAS_DB.sqlite;Version=3;Pooling=True;Max Pool Size=10;" />
</appSettings>
</configuration>
您可以在此处找到有关连接字符串的更多信息:http://www.connectionstrings.com/sqlite/
您已使用MyClass
,因此它应如下所示:
public class TarkBaseDb: DbManager
{
public TarkBaseDb()
: base("SQLite", "TARKMANCAS")
{
// definition of your tables
}
}