ASP.NET2.0连接ORACLE解决方案
以前写.net都用SQL Server2005数据库,但公司里要用Oracle 9i数据库,只能改程序的接口了,我从网上查了很多文章,很多都只说了一个方面,试验起来都不成功,测试了好多次终于成功了,所以做个简单得Demo把解决方法告诉遇到此类问题的朋友们。
Demo界面: Default.aspx
界面上添加的控件:
两个TextBox: tEmail(用于输入用户email),tPassword(用于输入注册密码)
一个Button: bReg
一个Label: lLable(用于注册成功后显示应答)
Demo的代码: Default.aspx.cs
我们先把数据的连接字符串写在Web.config里:
<appSettings>
<add key="oracleconn" value="User ID=用户名;Password=密码;Data Source=数据库服务名;"/>
</appSettings>
下面是Demo的源代码:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OracleClient; //添加OracleClient的引用
public partial class _Default : System.Web.UI.Page
{
public System.Data.OracleClient.OracleConnection objConn; //声明一个OracleConnection对象
public System.Data.OracleClient.OracleCommand objCmd; //声明一个OracleCommand对象
protected void Page_Load(object sender, EventArgs e)
{
lLable.Text = "";
string strcon = System.Configuration.ConfigurationManager.AppSettings["oracleconn"];
//从Web.config 文件里调用数据库连接字符串
objConn = new OracleConnection(strcon);
}
protected void bReg_Click(object sender, EventArgs e)
{
string strSQL = "INSERT INTO TEMP(EMAIL,PASSWORD) values ('";
strSQL+=tEmail.Text.Replace("'","''").ToString()+"','";
strSQL+=tPassword.Text.Replace("'","''").ToString()+"')";
objCmd = new OracleCommand(strSQL, objConn);
objConn.Open();
objCmd.ExecuteNonQuery();
objConn.Close();
lLable.Text = "注册成功,您的邮件地址是:"+tEmail.Text.ToString();
}
}
注意:
其实直接写上面的代码会出不少错误的,要做两个工作才可以。
1. ASP.NET2.0里默认不能直接添加using System.Data.OracleClient;需要在填加引用的.NET组件框里选择System.Data.OracleClient添加后才能用。
2. 在ASP.NET1.1中调用Web.config中的数据库连接字符串时使用语句System.Configuration.ConfigurationSettings.AppSettings["oracle"];,在2.0里须要使用System.Configuration.ConfigurationManager.AppSettings["oracleconn"];,并且需先在填加引用的.NET组件框里选择System.Configuration添加后才能用。
好了,工作做完了,一切OK。