ASP.NET操作Oracle数据库方法

ASP.NET连接Oracle数据库

              首先我们在oracle数据库管理工具P/L SQL Developer中创建一个表,假设为销售表(WARE_RETAIL_PART),并添加几条记录,结果如下:

 

          接着,我们打开VS2010,然后在Web.config文件中找到<connectionStrings></connectionStrings>节点,在节点中添加如下一句话。

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <connectionStrings>  
  2.      <add name="OracleConnString" connectionString="Data Source=ORCL;User ID=crm;Password=Oracle11" providerName="System.Data.OracleClient"/>  
  3. </connectionStrings>  

其中,Data Source是oracle数据库的实例名,后面的分别是用户名和密码。

            然后我们在项目App_Code文件夹下新建一个类,命名为DB.cs,该类主要用于连接和操作oracle数据库。编写代码如下:

[csharp] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. using System;  
  2. using System.Data;  
  3. using System.Configuration;  
  4. using System.Web;  
  5. using System.Web.Security;  
  6. using System.Web.UI;  
  7. using System.Web.UI.WebControls;  
  8. using System.Web.UI.WebControls.WebParts;  
  9. using System.Web.UI.HtmlControls;  
  10. using System.Data.SqlClient;  
  11. using System.Data.OracleClient;  
  12. /// <summary>  
  13. /// DB 的摘要说明  
  14. /// </summary>  
  15. public class DB  
  16. {  
  17.   
  18.   
  19.     public DB()  
  20.     {  
  21.         //  
  22.         // TODO: 在此处添加构造函数逻辑  
  23.         //  
  24.     }  
  25.  
  26.     #region 配置连接字符串  
  27.     /// 配置连接字符串  
  28.     /// </summary>  
  29.     /// <returns>返回SqlConnection对象</returns>  
  30.     public static OracleConnection GetCon()  
  31.     {  
  32.   
  33.         return new OracleConnection(ConfigurationManager.ConnectionStrings["OracleConnString"].ToString());//配置连接字符串  
  34.   
  35.     }  
  36.  
  37.     #endregion  
  38.  
  39.  
  40.     #region 执行SQL语句(增删改操作)  
  41.     /// <summary>  
  42.     /// 执行SQL语句  
  43.     /// </summary>  
  44.     /// <param name="P_str_cmdtxt">用来执行的SQL语句</param>  
  45.     /// <returns>返回是否成功,成功返回True,否则返回False</returns>  
  46.     public static bool exSql(string P_str_cmdtxt)  
  47.     {  
  48.         OracleConnection con = DB.GetCon();//连接数据库  
  49.         con.Open();//打开连接  
  50.         OracleCommand cmd = new OracleCommand(P_str_cmdtxt, con);  
  51.         try  
  52.         {  
  53.             cmd.ExecuteNonQuery();//执行SQL 语句并返回受影响的行数  
  54.             return true;  
  55.         }  
  56.         catch (Exception e)  
  57.         {  
  58.             return false;  
  59.         }  
  60.         finally  
  61.         {  
  62.             con.Dispose();//释放连接对象资源  
  63.         }  
  64.     }  
  65.     #endregion  
  66.  
  67.     #region  返回DataSet结果集  
  68.     /// <summary>  
  69.     /// 返回DataSet结果集  
  70.     /// </summary>  
  71.     /// <param name="P_Str_Condition">用来查询的SQL语句</param>  
  72.     /// <returns>结果集</returns>  
  73.     public static DataSet getDataSet(string P_str_cmdtxt)  
  74.     {  
  75.         OracleConnection con = DB.GetCon();//连接上数据库  
  76.         OracleDataAdapter da = new OracleDataAdapter(P_str_cmdtxt, con);  
  77.         DataSet ds = new DataSet();  
  78.         da.Fill(ds);  
  79.         return ds;//返回DataSet对象  
  80.     }  
  81.     #endregion  
  82.  
  83.     #region 根据指定SQL语句select获取记录集合中的第一行数据  
  84.     /// <summary>  
  85.     /// 根据指定SQL语句select获取记录集合中的第一行数据  
  86.     /// </summary>  
  87.     /// <param name="sqlString">SQL语句</param>  
  88.     /// <returns>根据指定SQL语句select获取记录集合中的第一行数据</returns>  
  89.     public static DataRow GetDataRow(string sqlString)  
  90.     {  
  91.         DataSet ds = getDataSet(sqlString);  
  92.         ds.CaseSensitive = false;//表示DataTable对象中的字符串比较不区分大小写  
  93.         if (ds.Tables[0].Rows.Count > 0)  
  94.         {  
  95.             return ds.Tables[0].Rows[0];  
  96.         }  
  97.         else  
  98.         {  
  99.             return null;  
  100.         }  
  101.     }  
  102.     #endregion  
  103.  
  104.     #region 查询数据是否存在的方法  
  105.     /// <summary>  
  106.     /// 查询数据是否存在的方法  
  107.     /// </summary>  
  108.     /// <param name="sql">需要执行的SQL语句</param>  
  109.     /// <returns>返回一个布尔值当数据存在返回True否则返回False</returns>  
  110.     public static bool isName(string sql)  
  111.     {  
  112.         //创建数据库连接  
  113.         OracleConnection con = GetCon();  
  114.         //打开数据库连接  
  115.         con.Open();  
  116.         //创建SqlCommand对象  
  117.         OracleCommand com = new OracleCommand(sql, con);  
  118.         //判断数据是否存在并返回相应的布尔值  
  119.         if (Convert.ToInt32(com.ExecuteScalar()) > 0)  
  120.         {  
  121.             return true;  
  122.         }  
  123.         else  
  124.         {  
  125.             return false;  
  126.         }  
  127.     }  
  128.     #endregion  
  129.  
  130.     #region 返回需要统计数据的结果(比如记录数)  
  131.     /// <summary>  
  132.     /// 返回需要统计数据的结果  
  133.     /// </summary>  
  134.     /// <param name="sql">需要查询的SQL语句</param>  
  135.     /// <returns>返回整型变量,表示统计后的结果</returns>  
  136.     public static int countData(string sql)  
  137.     {  
  138.         //创建数据库连接  
  139.         // string new_sql = CleanSQL(sql);  
  140.         OracleConnection con = GetCon();  
  141.         //打开数据库连接  
  142.         con.Open();  
  143.         //创建SqlCommand对象  
  144.         OracleCommand com = new OracleCommand(sql, con);  
  145.         //返回查询的结果  
  146.         return Convert.ToInt32(com.ExecuteScalar());  
  147.   
  148.     }  
  149.     #endregion  
  150.  
  151.     #region 用来执行用户登录操作,使用参数传递  
  152.     /// <summary>  
  153.     /// 该方法用来执行用户登录操作,使用参数传递。  
  154.     /// </summary>  
  155.     /// <param name="sql">需要执行的sql语句</param>  
  156.     /// <param name="name">用户登录名</param>  
  157.     /// <param name="pass">用户登录密码</param>  
  158.     /// <returns>返回一个布尔值,表示是否登录成功</returns>  
  159.     public static bool entrySql(string sql, string name, string pass, string type)  
  160.     {  
  161.         //创建数据库连接  
  162.   
  163.         OracleConnection con = DB.GetCon();//连接数据库  
  164.         con.Open();//打开连接  
  165.         //创建SqlCommand对象  
  166.         OracleCommand com = new OracleCommand(sql, con);  
  167.         //设置参数的类型  
  168.         com.Parameters.Add(new SqlParameter("name", SqlDbType.VarChar, 50));  
  169.         //设置参数的值  
  170.         com.Parameters["name"].Value = name;  
  171.         //设置参数的类型  
  172.         com.Parameters.Add(new SqlParameter("pass", SqlDbType.VarChar, 50));  
  173.         //设置参数的值  
  174.         com.Parameters["pass"].Value = pass;  
  175.         com.Parameters.Add(new SqlParameter("type", SqlDbType.VarChar, 50));  
  176.         //设置参数的值  
  177.         com.Parameters["type"].Value = type;  
  178.         //判断是否登录成功并返回布尔值  
  179.         if (Convert.ToInt32(com.ExecuteScalar()) > 0)  
  180.         {  
  181.             con.Close();  
  182.             return true;  
  183.   
  184.   
  185.         }  
  186.         else  
  187.         {  
  188.             con.Close();  
  189.             return false;  
  190.         }  
  191.     }  
  192.     #endregion  
  193.  
  194.     #region  绑定用户页面中的GridView控件  
  195.     /// <summary>  
  196.     /// 此方法实现数据绑定到GridView中  
  197.     /// </summary>  
  198.     /// <param name="dl">要绑定的控件</param>  
  199.     /// <param name="SqlCom">要执行的SQL语句</param>  
  200.     /// <returns></returns>  
  201.     public static bool BindGridView(GridView dl, string SqlCom)  
  202.     {  
  203.         dl.DataSource = DB.getDataSet(SqlCom);  
  204.         try  
  205.         {  
  206.             dl.DataBind();  
  207.             return true;  
  208.         }  
  209.         catch  
  210.         {  
  211.             return false;  
  212.         }  
  213.         finally  
  214.         {  
  215.             OracleConnection sqlcon = DB.GetCon();//连接数据库  
  216.             sqlcon.Close();  
  217.         }  
  218.     }  
  219.     #endregion  
  220.     public static bool BindDropDownList(DropDownList ddl, string SqlCom)  
  221.     {  
  222.         DataSet ds = DB.getDataSet(SqlCom);  
  223.         ddl.DataSource = ds.Tables[0].DefaultView;  
  224.         try  
  225.         {  
  226.             ddl.DataTextField = ds.Tables[0].Columns[0].ToString();      //显示的值    
  227.             ddl.DataValueField = ds.Tables[0].Columns[0].ToString();       //后台的值  
  228.             ddl.DataBind(); //下拉框绑定  
  229.             //ddl.Items.Insert(0, new ListItem("请选择", "请选择"));//此举必须放到数据绑定之后  
  230.   
  231.             return true;  
  232.         }  
  233.         catch  
  234.         {  
  235.             return false;  
  236.         }  
  237.         finally  
  238.         {  
  239.             OracleConnection sqlcon = DB.GetCon();//连接数据库  
  240.             sqlcon.Close();  
  241.         }  
  242.     }  
  243.   
  244.     public static void JsExeC(Control up, string name, string js)  
  245.     {  
  246.   
  247.         ScriptManager.RegisterClientScriptBlock(up, typeof(UpdatePanel), name, js, true);  
  248.     }  
  249.   
  250.     public static string CleanSQL(string mString)  
  251.     {  
  252.         if (mString == null)  
  253.             mString = "";  
  254.         else  
  255.         {  
  256.             mString = mString.Replace("'""''");  
  257.             mString = mString.Replace(";""");  
  258.             mString = mString.Replace("--""");  
  259.         }  
  260.         return mString;  
  261.     }  
  262.   
  263.   
  264.   
  265. }  

           在有了数据库操作类之后,我们可以在页面中访问我们的数据库了,这里我们测试下,在页面前端拖一个GridView,然后在后台查询销售表中的记录,并把记录绑定到GridView中。后台代码如下:

[csharp] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.UI;  
  6. using System.Web.UI.WebControls;  
  7. using System.Data;  
  8. using System.Data.SqlClient;  
  9. using System.Data.OracleClient;  
  10. public partial class Oconnect : System.Web.UI.Page  
  11. {  
  12.     protected void Page_Load(object sender, EventArgs e)  
  13.     {  
  14.         string sql = "select * from WARE_RETAIL_PART";  
  15.         //string tab_name = "WARE_RETAIL_PART";  
  16.         DataSet ds = DB.getDataSet(sql);  
  17.         GridView1.DataSource = ds.Tables[0].DefaultView;  
  18.         GridView1.DataBind();  
  19.               
  20.     }  
  21. }  


          最后,我们点击运行VS,会在浏览器中看到我们销售表里的记录了,如果显示数据,说明连接oracle成功了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章