古い Visual FoxPro プログラムを持っていますが、これを c# で書き直す必要があります。そこでは、VFP のカーソルを使用して、.txt ファイルを読み取り、それを一時カーソルにロードしました。
たとえば、FoxPro では次のようになります: (mb5b は mb5b-textfile です)
SELECT werk,matnr,ALLTRIM(matnr)+ALLTRIM(werk) as matwerk,sum(zugang) as zugang,sum(abgang) as abgang INTO CURSOR mb5b_temp FROM mb5b GROUP BY werk,matnr
これらのカーソルは c# には存在しません。(このようなものは見つかりませんでした。)だから、DataTableを作成し、ファイルを読みながらDataTableに挿入します。
DataTable dt_mb5b_temp = new DataTable();
dt_mb5b_temp.Columns.Add("matnr");
dt_mb5b_temp.Columns.Add("werk");
dt_mb5b_temp.Columns.Add("matwerk");
dt_mb5b_temp.Columns.Add("zugang");
dt_mb5b_temp.Columns.Add("abgang");
while ((mb5bline = sr_mb5b.ReadLine()) != null)
{
DataRow dr = dt_mb5b_temp.NewRow();
string[] mb5b = mb5bline.Split(new Char[] { '|' });
dr["matnr"] = mb5b[1].Trim();
dr["werk"] = mb5b[2].Trim();
dr["matwerk"] = mb5b[1].Trim() + mb5b[2].Trim();
dr["zugang"] = mb5b[6].Trim();
dr["abgang"] = mb5b[7].Trim();
}
上記のように選択ステートメントを使用するためにDataTable.Select()を使用できると思いましたが、機能しません...そして、現時点では他の解決策が思い浮かびません:/
確かにDBに挿入することもできます-次に選択を使用しますが、これを回避しようとします(2つの追加のテーブルが必要であり、それらの挿入と選択には長い時間がかかると思います)。これを機能させる可能性はありますか?
ありがとう!
さらに情報が必要な場合は、お知らせください。