2012-04-17 4 views
1

私はasp.net 3.5とSQL Server 2008をバックエンドデータストアとして使用するWebサイトを持っています。今、私たちのウェブサイトに新しいページを追加したいと考えています。このページで共有したいデータは、ローカルシステムのFoxProソフトウェアによって既に作成され、保存されています。FoxProデータベースとasp.net

私はFoxProでの経験がありません。私たちのサイトでこのデータを使用する方法はありますか?特に、サーバーに新しいデータベースを作成し、すべてのレコードをすべてインポートまたは書き戻す必要はありません。このような状況では何が最善の方法ですか?

ところで、FoxProデータベースの拡張子を変更することはできますか? Database.customExtのようなもの?

答えて

2

ADO.NETのOLEDB datasourceを使用してFoxProデータベースに接続できます。 SQL Serverにデータをインポートしたり、FoxProで直接アクセスする必要があるかどうかは、あなた次第です。 SQL Serverのデータとデータを1つのクエリで結合するかどうかによって異なります。

+0

ありがとう、私は今気分が良い。 SQL Serverのようなサーバーが必要か、ファイルベースなのか、app_dataにコピーして使用できますか?拡張子 –

+0

に関する2番目の質問については、ファイルベースであり、サーバーは必要ありません。私はあなたが拡張子を変更した場合にどうなるか分かりません... – Simon

1

このFoxproデータベースにリンクサーバーを作成できます。

また、Foxproテーブルには任意の拡張子を付けることができます。ただし、テーブルまたはデータベースを使用する場合は、拡張子を指定する必要があります。例:

OPEN DATABASE MyFoxProDatabase.customExt 
USE mytable.custonExt 
1

FoxProへのデータアクセスを構造化するためのいくつかのオプションがあります。 ADO.NETのデータアクセスコードをコードビハインド内に置くことができます。また、独自のC#ライブラリに格納することも、2ウェイバインディングのためにobjectdatasourceを使用することもできます。ここで

private void LoadData(string parameter) 
{ 
    string sql = "SELECT a.myfield FROM mytable.customExt a WHERE a.whereField=?"; 
    using(OleDbConnection conn = new OleDbConnection(myConnectionString)) 
    { 
     using (OleDbCommand command = new OleDbCommand(sql, conn)) 
     { 
      command.Parameters.AddWithValue("@Parameter", parameter); 

      try 
      { 
       conn.Open(); 
       using(OleDbDataReader dr = command.ExecuteReader(CommandBehavior.CloseConnection)) 
       { 
        myGridView.DataSource = dr; 
        myGridView.DataBind(); 
       } 
      } 
      catch (Exception ex) 
      { 
       throw; 
      } 
     } 
    } 
} 

は、web.configファイルで使用するサンプルの接続文字列です:

<add name="myData" connectionString="Provider=VFPOLEDB.1;Data Source=C:\MyFiles\" providerName="System.Data.OleDb"/> 

私はOUがあなたのFoxProテーブルやデータベースにカスタム拡張機能を使用することができます信じて。すべてのSQL文は、その拡張を明示的に使用する必要があります。

SELECT t.MyField FROM MyTable.customExt t 
+0

FoxProはファイルベースであり、私のapp_dataにコピーする必要があります。右 ? –

+1

@reza - ファイルは、コードが読み書きできるファイルシステムのどこにでも置くことができます。 FoxProはファイルベースです。 – DaveB

2

すでに回答があります。 LINQ to VFPまたはVFP Entity Framwork Providerを使用して、LINQを使用してデータへのアクセスをさらに簡単にすることに興味があるかもしれません。

1

Visual FoxProテーブルの拡張子を変更することはできますが、DBFファイルにのみ影響します。テーブルにメモフィールドがある場合は、関連付けられているFPTファイルがあります。拡張子は変更できません。同様に、テーブルに関連するインデックスファイルがある場合は、CDX拡張子が必要です。

したがって、拡張機能を変更する理由は、同じfilestemを持つ複数のテーブルを許可するためです。それは本当に物事を混乱させる良い方法です。

関連する問題