|
分類:[C#]
WindowsXP VisualStudio2008C# で開発しています。
public static Object[] OJ = new Object[200]; //-----------------------------------------------------------------------読み込みデータ
public static Object[] NJ = new Object[200]; //-----------------------------------------------------------------------書き込みデータ
public static int DBF(string DBN, string KYN, string STS, int TLO)
{
int X = 0;
using (OracleConnection con = new OracleConnection())
{
con.ConnectionString = MKST.UID;
try
{
con.Open();
}
catch (Exception EX)
{
MessageBox.Show("「" + EX.Message + "」でデータベースの接続に失敗しました。");
return X;
}
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "select * from " + DBN + " where " + KYN + "ORDER BY " + STS;
OracleDataReader dr = cmd.ExecuteReader();
try
{
dr.Read();
for (int CT1 = 0; CT1 < TLO; CT1++)
{
MKST.OJ[CT1] = dr[CT1];
}
X = 1;
}
catch
{
X = 0;
}
}
return X;
}
でオラクルから読んだデータをOJオブジェクトに保持します。
private void SKen(string SNa)
{
string WS, PS;
//int FG3;
int GI = 1;
FG1 = CDBA.DBF("製品構成", "品番 = '" + SNa + "'", "品番,部番", AAAT);
while (FG1 == 1)
{
if (FG1 == 0) { break; }
//FG3 = 0;
for (int CT1 = 0; CT1 < 10; CT1++) { RS[CT1] = null; }
AAAOLD = MKST.OJ;
MessageBox.Show("[" + AAAOLD[0].ToString() + "][" + AAAOLD[1].ToString() + "][" + AAAOLD[2].ToString() + "]");
WS = AAAOLD[1].ToString();
RS[GI] = WS; PS = WS + "×" + AAAOLD[2].ToString(); FG2 = 1;
while (FG2 == 1)
{
MessageBox.Show("sm20[" + AAAOLD[0].ToString() + "][" + AAAOLD[1].ToString() + "][" + AAAOLD[2].ToString() + "]");
FG2 = CDBA.DBF("部品構成", "部番 = '" + WS + "'", "部番,部品", PM10T);
PM20OLD = MKST.OJ;
MessageBox.Show("pm20[" + PM20OLD[0].ToString() + "][" + PM20OLD[1].ToString() + "][" + PM20OLD[2].ToString() + "]");
MessageBox.Show("sm20[" + AAAOLD[0].ToString() + "][" + AAAOLD[1].ToString() + "][" + AAAOLD[2].ToString() + "]");
if (FG2 == 1)
{
//PM20OLD = MKST.OJ;
PS = PS + PM20OLD[1].ToString() + "×" + PM20OLD[2].ToString();
WS = PM20OLD[1].ToString();
}
else
{
listBox1.Items.Add(PS);
break;
}
}
MessageBox.Show("next[" + AAAOLD[0].ToString() + "][" + AAAOLD[1].ToString() + "][" + AAAOLD[2].ToString() + "]");
FG1 = CDBA.DBF("製品構成", "品番 = '" + AAAOLD[0].ToString() + "' and 部番 > '" + AAAOLD[1].ToString() + "'", "品番,部番", AAAT);
}
}
でDBFを使うとAAAOLDの中身がPM20OLDにOJをコピーするとPM20OLDの中身と同じになってしまいます。AAAOLDの中身とPM20OLDは別のものでなければなりません。どうしたら回避できるでしょうか?ご教授お願いいたします。
|