1

こんにちは、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>(); } }

TarkBaseスキーマ:

    [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

エラーメッセージは、SQLiteではなくSQLServerに接続しようとしていることを示しています。

接続文字列を変更して、正しいドライバを選択してください。
(そして、「データ」と「ソース」の間に2つのスペースがあります。)

于 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 に答える