1

嗨,我在连接到我的 sqlitedb 时遇到错误。

我使用 Firefox Sqlite 插件创建我的 sqlitedb。

MyConn:(网络配置)

    <connectionStrings>
             <add name="TARKMANCAS_CONNECTION" connectionString="Data  Source=C:/TARKMANCAS_DB.sqlite;"/>
    </connectionStrings>

我的课:

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)
4

2 回答 2

2

错误消息显示它正在尝试连接到 SQL Server,而不是 SQLite。

更改连接字符串以选择正确的驱动程序。
(并且“数据”和“源”之间有两个空格。)

于 2012-09-21T06:35:55.487 回答
0

我认为这对我来说是一个答案;)

linq2db

最佳解决方案 -使用linq2db


BL工具包

如果您不想使用linq2db ,请按照以下步骤使用bltokit连接到 sqlite db 。

安装库

安装 nuget 包(或手动下载)

PM> Install-Package BLToolkit.SQLite
PM> Install-Package System.Data.SQLite.Core

修改 web.config/app.config

<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/

创建 DbManager 的实例

你已经使用MyClass了,所以它应该看起来像:

public class TarkBaseDb: DbManager
{
  public TarkBaseDb()
          : base("SQLite", "TARKMANCAS")
  {
      // definition of your tables
  }
}
于 2016-06-28T15:58:53.203 回答