【问题标题】:How to connect SqliteDB using BLToolkit on ASP.NET?如何在 ASP.NET 上使用 BLToolkit 连接 SqliteDB?
【发布时间】:2012-09-20 21:45:07
【问题描述】:

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

我使用 Firefox Sqlite Addon 创建了我的 sqlitedb。

MyConn : (webconfig)

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

【问题讨论】:

标签: asp.net sqlite database-connection bltoolkit


【解决方案1】:

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

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

【讨论】:

  • 现在错误已更改,我将提供程序设置为 bltoolkit,我得到了这个:无法从程序集中加载类型“BLToolkit.Data.DataProvider.SQLiteDataProvider”
  • 你必须register the provider
【解决方案2】:

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

Linq2db

最佳解决方案 - 使用linq2db


BLToolkit

如果您不想使用 linq2db,请按照以下步骤使用 bltookit 连接到 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
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 2012-10-13
    相关资源
    最近更新 更多