2013-06-04 156 views
0

我有1個數據庫如何通過數組作爲參數

TABLE 1: LOGS 
TABLE 2: MASTER LIST 

LOGS 
HOST | USER | NAME 
================== 
1 | A | A1 
1 | A | B1 
1 | A | C1 
1 | A | D1 

MASTER LIST 
HOST | USER | NAME 
=================== 
1 | A | A1 
1 | A | B1 
1 | A | C1 

在我的C#程序2個表,我有一個gridview,我要強調這是不包含在主列表中的行

LOGS 
HOST | USER | NAME 
================== 
1 | A | A1 
1 | A | B1 
1 | A | C1 
**1 | A | D1** 

這裏是我的C#代碼:

  //Create the OracleCommand 

      OracleCommand OCom = new OracleCommand("SERVERSTATUS.LOG_LIST", oc); 

      OCom.CommandType = CommandType.StoredProcedure; 

      OCom.Parameters.Add("out_RESULT", OracleType.Cursor).Direction = ParameterDirection.Output; 

      OCom.Parameters[0].Value = sid; 

      OracleDataAdapter _daGrid1 = new OracleDataAdapter(OCom); 

      _daGrid1.Fill(_dsGrid); 

      _daGrid1.Dispose(); 
      _daGrid1 = null; 

      OCom.Dispose(); 
      OCom = null; 

      if (frm_IT010_03 == null) 
      { 
       //button click show form with gridview 
       frm_IT010_03 = new IT010_03(_dsGrid); 
       frm_IT010_03.ShowDialog(); 
      } 

類LogArray:從數據庫到數組該類存儲數據。我怎麼能叫牛逼他上課?因此,我可以與電網相比較起來..

public void LogArray(ArrayList al) 
    { 

     OracleConnection oc = new OracleConnection(ConOra); 
     DataSet _dsGrid = new DataSet(); 

     try 
     { 
      oc.Open(); 
     } 
     catch (OracleException ex) 
     { 
      MessageBox.Show(ex.ToString()); 
     } 

     try 
     { 
      OracleCommand OCom = new OracleCommand("SERVERSTATUS.LOG_STATUS", oc); 
      OCom.CommandType = CommandType.StoredProcedure; 

      OCom.Parameters.Add("out_RESULT", OracleType.Cursor).Direction = ParameterDirection.Output; 

      OracleDataReader DataReader = OCom.ExecuteReader(); 

      while (DataReader.Read()) 
      { 
       al.Add(DataReader.GetString(0)); 
      } 

     } 
     catch 
    { 
    ... 
    } 

我編了一包2個程序,甲骨文

Package name: Server Status 
Procedure name: **Log_list** = Calls for the Logs Table 
Procedure name: **Log_status** = Calls for the values that are in the logs table but is not included in the master list table. 

謝謝! =))

+0

它看起來像你對我會使用你的LOG_LIST過程來填充網格,然後調用LOG_STATUS例行程序來獲取其值存在於LOGS中,但不在MASTER LIST中,通過網格循環找到與LOG_STATUS返回的內容相匹配的條目,並將相應行中單元格的背景和前景設置爲「突出顯示」。分享並享受。 –

+0

我編輯我的代碼,並添加一個類與數組..所以我可以將它們與網格進行比較..我怎樣才能調用數組?或者是我的代碼好嗎? – QKWS

+0

如果您只需要突出顯示記錄,那麼爲什麼不添加指示是否突出顯示的另一列(即使用VIEW)?這可以簡單地用SQL來完成... –

回答

0

我不確定我是否理解你,但如果你只需要知道哪些記錄要突出顯示,那麼你可以在sql(或plsql)中擁有它。

你的查詢可以是這樣的:

select l.HOST, l.USER, l.NAME, case when ml.HOST is null then 1 else 0 end is_to_highlight 
from LOGS l left outer join MASTER_LIST ml on l.HOST = ml.HOST 
and l.USER= ml.USER 
and l.NAME = ml.NAME 

Here is a sqlfiddle demo

+0

感謝您分享您的想法。 =)在我的C#代碼,如果is_to_highlight == 1,然後突出顯示行..你是什麼意思? – QKWS

+0

謝謝sqlfiddle也.. =) – QKWS

+0

@QKWS,是的,如果0然後不突出顯示 –