文章分類

C# (27) ASP.NET (13) SQL (7) ORACLE (5) JAVA (2) SQLSERVER2008 (2) 大家都在問的事 (2) ACCESS (1) ANDRIOD (1) JQUERY (1) python (1) 雜談 (1)

關於我自己

我的相片
程式初心者 JAVA, ASP.NET, C# ,SQL

2011年11月30日 星期三

【C#】使用ORACLE兩種寫SQL傳參數的方法

1.使用string.format方法

#region 寫法1
    DataTable ddt = new DataTable();
    string ss = string.Format("SELECT * FROM  UI_USER_GROUP WHERE USER_NAME='{1}'", "SHENG");
    //{1}表示逗號後的第一個引數,{2}可以表示為逗號後第二個引數,以此類推

            ddt = ExcuteForQuery(ss);
            if (ddt.Rows.Count > 0)
            {
                MsgBox("大於0");//自訂messagebox方法

            }
            else { MsgBox("等於0"); }
#endregion

ExcuteForQuery方法
public DataTable ExcuteForQuery(string sql)
{
    DT = new DataTable();//建立datatable接收query的資料
   using (OracleConnection conn = new OracleConnection("Data Source=orcl;User=SHENG;Password=1234"))
//建立連線物件aaa, Data Source=IP/DB_NAME;User=XXXX;Password=XXXX
      {
                conn.Open();//開始連線
                //建立od物件接收select結果
                OracleDataAdapter OD = new OracleDataAdapter(sql, conn);

                OD.Fill(DT);
                //指定datagridview的datasource

                conn.Close();//結束連線
            }
            return DT;
        }

2.使用command的物件
#region 寫法2
            DataTable ddt2 = new DataTable();
            
            string l_strExeSQL = "SELECT * FROM UI_USER_GROUP WHERE USER_NAME = :USERNAME";
            OracleCommand g_scSql = new OracleCommand(l_strExeSQL);
            g_scSql.Parameters.Add("USERNAME", OracleType.VarChar).Value = "SHENG";
            ddt2 = ExcuteForQuery(g_scSql);
            if (ddt2.Rows.Count > 0)
            {
                MsgBox("大於0");//自訂messagebox方法

            }
            else { MsgBox("等於0"); }
            #endregion


ExcuteForQuery方法
public DataTable ExcuteForQuery(OracleCommand o_cmd)
        {
            DT = new DataTable();//建立datatable接收query的資料
            using (OracleConnection conn = new OracleConnection("Data Source=orcl;User=SHENG;Password=1234"))//建立連線物件aaa, Data Source=IP/DB_NAME;User=XXXX;Password=XXXX
            {
               
                conn.Open();//開始連線
                o_cmd.Connection = conn;
                //建立od物件接收select結果
                OracleDataAdapter OD = new OracleDataAdapter(o_cmd);

                OD.Fill(DT);
                //指定datagridview的datasource

                conn.Close();//結束連線
            }
            return DT;
        }

沒有留言:

張貼留言