2017-07-27 6 views
-1

アクセスデータベースを開いたり、編集したり、作成したり、保存したりするプログラムがあります。保存するために、テーブルだけで空のデータベースをコピーします(すべてのテーブルやカラムを作成するという面倒を避けるため)、TableAdapterManager.UpdateAllメソッドで値を入力してみてください。C#データセットからアクセスデータベースを入力

string _TemplateConnectString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};"; 
_connection = new OleDbConnection(string.Format(_TemplateConnectString, dlg.FileName)); 
_connection.Open(); 

DataSet1TableAdapters.TableAdapterManager tam=new TableAdapterManager(); 
tam.Connection = _connection; 
try 
{ 
    tam.UpdateAll(dataset); 
} 
catch (System.Exception ex) 
{ 
    MessageBox.Show("Update failed"); 
} 

例外なく終了しますが、値は新しいデータベースに挿入されません。

また、UpdateAllメソッドは変更された行のみを更新するので、一部のデータベースを開いて行を挿入すると、データベースに入力しようとしていないのにアカウントに反映されません。

私もADODBとADOXの拡張子を持つデータベースを埋める試みたが、私はそれらと検出されたすべてのソリューションは、などハードコードの多くと階層のためノーについて、キー、

だったが、強制する方法はあります新しいデータベースにすべてを挿入しますか?

答えて

0

クラムシーなソリューションですが、機能します。私は、データセットのテーブルを反復処理し、このようなSQL文字列ジェネレータを経由して保存します。

void SaveTable(DataTable dt) 
    { 
     string[] inserts; 
     try 
     { 
      inserts = SqlHelper.GenerateInserts(dt, null, null, null); 

      foreach (string s in inserts) 
      { 
       OleDbCommand cmd = new OleDbCommand(); 
       cmd.CommandText = s; 
       cmd.Connection = _connection; 
       int n = cmd.ExecuteNonQuery(); 
      } 
     } 
     catch (Exception e) 
     { 
      SaveOk = false; 
     } 
    } 

私はunforunately、このサイトのどこかにSqlHelperを見つけましたが、完全にどこに失わ。だからここにペーストビンがあります。https://pastebin.com/iCMVuYyu

0

テンプレートデータベースはVisual Studioプロジェクトディレクトリにありますか?それは...

+0

私にはコメントのようですが、答えは似ていません。 –

+0

はいemptydb.mdbファイルには、プリセットされているが空のテーブルがすべてあります。私はそのファイルに保存することはできません。異なる名前のデータベースにのみ –

0

は、Excelファイルで、ここで、右側の[データソースのデータベース名を使用するように 例を試してみてくださいビン/デバッグまたはbinに/リリースフォルダにデータベースをコピーするのVisual Studioとは何かを持っているかもしれません:

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
     "Data Source=c:\somepath\ExcelFile.xls;" & _ 
     "Extended Properties=""Excel 8.0;HDR=Yes;"";" 
+0

しかしそれは正しいです。データソースは私が開いているデータベースです。開いた状態で接続が正常に開きます。それは問題がある次の部分です –

+0

たとえば、データセット全体ではなく、単一のサンプルデータだけを挿入できますか? – orgen

関連する問題