C#连接oracle数据库 我想用C#连接Oracle数据库,但是连接的字符串不想重复写,只想写一边之后在其他地方连接的时候就调用就可以了,请问怎么写啊,最好有代码和例子,谢谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该有用http://blog.csdn.net/small5e4444/archive/2010/07/09/5722167.aspx using System;using System.ComponentModel;using System.Collections;using System.Diagnostics;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.Web.SessionState;using System.Web;namespace Utilities{/// <summary> /// DbAccess类,即进行数据库访问时需要调用的类 /// </summary> public class DbaseBS{//取出数据库连接字符串public static readonly string conStr = ConfigurationSettings.AppSettings["ConnectionString"];/// <summary>/// 得到数据库连接对象/// </summary>/// <returns>数据库连接对象</returns>public static SqlConnection GetConObject(){return new SqlConnection(conStr);}/// <summary>/// 执行操作数据库的存储过程/// </summary>/// <param name="procName">存储过程名称</param>/// <returns>存储过程执行后所影响的行数</returns>public static int ExecuteNonQuery(string procName) {SqlCommand cmd = new SqlCommand();using (SqlConnection con = GetConObject()) {CreateCommand(cmd, con, null, procName,null);int val = cmd.ExecuteNonQuery();cmd.Parameters.Clear();cmd.Dispose();return val;}}/// <summary>/// 执行操作数据库的存储过程/// </summary>/// <param name="procName">存储过程名称</param>/// <param name="cmdParms">存储过程所使用的参数</param>/// <returns>存储过程执行后所影响的行数</returns>public static int ExecuteNonQuery(string procName, SqlParameter[] cmdParms) {SqlCommand cmd = new SqlCommand();using (SqlConnection con = GetConObject()) {CreateCommand(cmd, con, null, procName, cmdParms);int val = cmd.ExecuteNonQuery();cmd.Parameters.Clear();cmd.Dispose();return val;}}/// <summary>/// 执行读数据集操作,以DataReader的形式返回/// </summary>/// <param name="procName">存储过程名称</param>/// <param name="cmdParms">存储过程所使用的参数</param>/// <returns>DataReader对象</returns>public static SqlDataReader ExecuteReader(string procName, SqlParameter[] cmdParms) {SqlCommand cmd = new SqlCommand();SqlConnection con = GetConObject();try {CreateCommand(cmd, con, null, procName, cmdParms);SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);cmd.Parameters.Clear();return dr;}catch(Exception ex){cmd.Dispose();Close(con);throw ex;}}/// <summary>/// 执行读数据集操作,以DataReader的形式返回/// </summary>/// <param name="procName">存储过程名称</param>/// <returns>DataReader对象</returns>public static SqlDataReader ExecuteReader(string procName) {SqlCommand cmd = new SqlCommand();SqlConnection con = GetConObject();try {CreateCommand(cmd, con, null, procName, null);SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);cmd.Parameters.Clear();return dr;}catch(Exception ex) {cmd.Dispose();Close(con);throw ex;}}/// <summary>/// 执行读数据集操作,以DataSet的形式返回/// </summary>/// <param name="procName">存储过程名称</param>/// <param name="cmdParms">存储过程所使用的参数</param>/// <returns>DataSet对象</returns>public static DataSet ExecuteDataSet(string procName, SqlParameter[] cmdParms) {SqlCommand cmd = new SqlCommand();SqlConnection con = GetConObject();DataSet ds = new DataSet();try {CreateCommand(cmd, con, null, procName, cmdParms);SqlDataAdapter da = new SqlDataAdapter();da.SelectCommand = cmd;da.Fill(ds);cmd.Parameters.Clear();return ds;}catch(Exception ex){throw ex;}finally{cmd.Dispose();Close(con);}}/// <summary>/// 执行读数据集操作,以DataSet的形式返回/// </summary>/// <param name="procName">存储过程名称</param>/// <returns>DataReader对象</returns>public static DataSet ExecuteDataSet(string procName) {SqlCommand cmd = new SqlCommand();SqlConnection con = GetConObject();DataSet ds = new DataSet();try {CreateCommand(cmd, con, null, procName, null);SqlDataAdapter da = new SqlDataAdapter();da.SelectCommand = cmd;da.Fill(ds);cmd.Parameters.Clear();return ds;}catch(Exception ex){throw ex;}finally{cmd.Dispose();Close(con);}}/// <summary>/// 创建数据库执行命令/// </summary>/// <param name="cmd">数据库执行命令对象</param>/// <param name="con">数据库连接对象</param>/// <param name="trans">数据库事务对象</param>/// <param name="procName">存储过程名称</param>/// <param name="cmdParms">存储过程所使用的参数数组</param>public static void CreateCommand(SqlCommand cmd, SqlConnection con, SqlTransaction trans, string procName, SqlParameter[] cmdParms) {if (con.State != ConnectionState.Open)con.Open();cmd.Connection = con;cmd.CommandText = procName;if (trans != null){cmd.Transaction = trans;}cmd.CommandType = CommandType.StoredProcedure;if (cmdParms != null) {foreach(SqlParameter parm in cmdParms)cmd.Parameters.Add(parm);}}/// <summary>/// 关闭数据库连接/// </summary>/// <param name="myConn">数据库连接对象</param>public static void Close(SqlConnection myConn){if((myConn != null) && (myConn.State == ConnectionState.Open)){myConn.Close();}} //-----------------------------------创建一个存储过程CREATE PROCEDURE AddData_Admin @AdminName NVarChar(50),@AdminPassword NVarChar(50)ASSET NOCOUNT ONINSERT INTO Admin (AdminName,AdminPassword) VALUES(@AdminName,@AdminPassword)SELECT @@IDENTITY AS NIDSqlCommand command = new SqlCommand();command.Connection = conn;command.CommandText = "存储过程的名字";command.CommandType = CommandType.StoredProcedure;希望有收获 大家看一下这个正则表达式为什么不能用啊? C++ 如何转换到 C#? 窗体传值问题(listView1) 提示信息页面如何制作 oracle数据库如何连接?--在线等待 !!!再问,.net中引用VB开发的dll文件的问题!!! 我想用自定义的验证实现判断日期选择是否合法 如何设置dataGrid 可以用编程的方式把Bitmap对象写入到动态创建的xps文件中吗? 求教高手:如何打包C#的WINDOWS应用? Webbrowser捕捉javascript链接的onclick事件后postdata c# 2个简单问题
using System.ComponentModel;
using System.Collections;
using System.Diagnostics;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web.SessionState;
using System.Web;
namespace Utilities
{/// <summary>
/// DbAccess类,即进行数据库访问时需要调用的类
/// </summary>
public class DbaseBS
{
//取出数据库连接字符串
public static readonly string conStr = ConfigurationSettings.AppSettings["ConnectionString"];/// <summary>
/// 得到数据库连接对象
/// </summary>
/// <returns>数据库连接对象</returns>
public static SqlConnection GetConObject()
{
return new SqlConnection(conStr);
}/// <summary>
/// 执行操作数据库的存储过程
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <returns>存储过程执行后所影响的行数</returns>
public static int ExecuteNonQuery(string procName)
{
SqlCommand cmd = new SqlCommand();using (SqlConnection con = GetConObject())
{
CreateCommand(cmd, con, null, procName,null);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
cmd.Dispose();
return val;
}
}/// <summary>
/// 执行操作数据库的存储过程
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <param name="cmdParms">存储过程所使用的参数</param>
/// <returns>存储过程执行后所影响的行数</returns>
public static int ExecuteNonQuery(string procName, SqlParameter[] cmdParms)
{
SqlCommand cmd = new SqlCommand();using (SqlConnection con = GetConObject())
{
CreateCommand(cmd, con, null, procName, cmdParms);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
cmd.Dispose();
return val;
}
}
/// <summary>
/// 执行读数据集操作,以DataReader的形式返回
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <param name="cmdParms">存储过程所使用的参数</param>
/// <returns>DataReader对象</returns>
public static SqlDataReader ExecuteReader(string procName, SqlParameter[] cmdParms)
{
SqlCommand cmd = new SqlCommand();
SqlConnection con = GetConObject();try
{
CreateCommand(cmd, con, null, procName, cmdParms);
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return dr;
}
catch(Exception ex)
{
cmd.Dispose();
Close(con);
throw ex;
}
}/// <summary>
/// 执行读数据集操作,以DataReader的形式返回
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <returns>DataReader对象</returns>
public static SqlDataReader ExecuteReader(string procName)
{
SqlCommand cmd = new SqlCommand();
SqlConnection con = GetConObject();try
{
CreateCommand(cmd, con, null, procName, null);
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return dr;
}
catch(Exception ex)
{
cmd.Dispose();
Close(con);
throw ex;
}
}/// <summary>
/// 执行读数据集操作,以DataSet的形式返回
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <param name="cmdParms">存储过程所使用的参数</param>
/// <returns>DataSet对象</returns>
public static DataSet ExecuteDataSet(string procName, SqlParameter[] cmdParms)
{
SqlCommand cmd = new SqlCommand();
SqlConnection con = GetConObject();
DataSet ds = new DataSet();try
{
CreateCommand(cmd, con, null, procName, cmdParms);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds);
cmd.Parameters.Clear();
return ds;
}
catch(Exception ex)
{
throw ex;
}
finally
{
cmd.Dispose();
Close(con);
}
}
/// <summary>
/// 执行读数据集操作,以DataSet的形式返回
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <returns>DataReader对象</returns>
public static DataSet ExecuteDataSet(string procName)
{
SqlCommand cmd = new SqlCommand();
SqlConnection con = GetConObject();
DataSet ds = new DataSet();try
{
CreateCommand(cmd, con, null, procName, null);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds);
cmd.Parameters.Clear();
return ds;
}
catch(Exception ex)
{
throw ex;
}
finally
{
cmd.Dispose();
Close(con);
}
}/// <summary>
/// 创建数据库执行命令
/// </summary>
/// <param name="cmd">数据库执行命令对象</param>
/// <param name="con">数据库连接对象</param>
/// <param name="trans">数据库事务对象</param>
/// <param name="procName">存储过程名称</param>
/// <param name="cmdParms">存储过程所使用的参数数组</param>
public static void CreateCommand(SqlCommand cmd, SqlConnection con, SqlTransaction trans, string procName, SqlParameter[] cmdParms)
{
if (con.State != ConnectionState.Open)
con.Open();cmd.Connection = con;
cmd.CommandText = procName;if (trans != null)
{
cmd.Transaction = trans;
}cmd.CommandType = CommandType.StoredProcedure;if (cmdParms != null)
{
foreach(SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}/// <summary>
/// 关闭数据库连接
/// </summary>
/// <param name="myConn">数据库连接对象</param>
public static void Close(SqlConnection myConn)
{
if((myConn != null) && (myConn.State == ConnectionState.Open))
{
myConn.Close();
}
}
//-----------------------------------创建一个存储过程CREATE PROCEDURE AddData_Admin
@AdminName NVarChar(50),@AdminPassword NVarChar(50)
AS
SET NOCOUNT ON
INSERT INTO Admin
(AdminName,AdminPassword)
VALUES(@AdminName,@AdminPassword)
SELECT @@IDENTITY AS NID
SqlCommand command = new SqlCommand();
command.Connection = conn;
command.CommandText = "存储过程的名字";
command.CommandType = CommandType.StoredProcedure;
希望有收获