データベース内でCalculated
というテーブルを更新する必要がありますが、テーブルに追加/更新する変数として自分のシステムに保存した値が非常に多いためです私はDatabase Relationships
という名前のデータベースに別のテーブルを作成しました。データベース名を使用して同じ名前の変数を呼び出す
このDatabase Relationships
テーブルには、テーブルのすべてのフィールド名を保持するCalculated Value
という列があります。他の列は、System Field
は全てstring
タイプである私は値を作成して与えた変数のすべての名前を保持し、それがそうFOREACH
ループ
OleDbDataAdapter relationshipAdapter = new OleDbDataAdapter(relationshipCmd);
DataTable relationshipTable = new DataTable();
relationshipAdapter.Fill(relationshipTable);
string update = "Update [Calculated] SET ";
int i = 0;
int len = relationshipTable.Rows.Count;
foreach (DataRow drr in relationshipTable.Rows)
{
string calc = drr["Calculated Field"].ToString();
var sys = drr["System Field"].ToString();
if (i == len - 1)
{
update += "[" + calc + "] = " + sys + ";";
}
else
{
update += "[" + calc + "] = " + sys + ", ";
}
i++
}
update += "WHERE [NSN] = '" + NSN + "';";
OleDbCommand updateCmd = new OleDbCommand(update);
を使用して、対応するCalculated Value
に関するしかし、これはうまくいきません。なぜなら、あるデバッグ(?)の後、単純にConsole.WriteLine(sys)
を実行し、システム内の同じ名前の変数ではなく、System Field
列の文字列を出力するからです。
私は現在データベースプラットフォームとしてMicrosoft Accessを使用しています。
システム内の同じ名前の変数はどういう意味ですか?定義されているかスコープされているのはどこですか?私はコード内にこのような変数は見当たりません。 – sachin
テーブルDataBaseRelationshipsには、名前を保持する2つの列があります。どこに値を挿入したいですか? – sachin
私はそれらの質問に追加しませんでした。 同じ名前の変数は、たとえば、 "king"という変数を作成し、値が "George"であるということです。したがって、この変数 'king'は' King's Name'フィールドの 'Calculated'というテーブルに格納する必要があります。しかし、私はこれらの変数のうち112以上を持っているので、 'UPDATE'文を作成するのは少し大きすぎますし、追跡するのが難しいでしょう。 – Kingler