<connectionStrings>
<add name="SybaseDB" connectionString="UserID=DBA;Password=sql;DatabaseName=demo;ServerName=demo11"
providerName="iAnywhere.Data.SQLAnywhere" />
</connectionStrings>
namespace DBHelper
{
using System;
using System.Configuration;
using System.Data;
using System.Data.Common;
using System.Web;
public class DBSybaseHelper : IDisposable
{
private static string _confirString = "SybaseDB";
private DbConnection connection;
public DBSybaseHelper()
{
connection = CreateConnection();
connection.Open();
}
public static string GetConnectionString()
{
ConnectionStringSettingsCollection ConfigStringCollention = ConfigurationManager.ConnectionStrings;
if (ConfigStringCollention == null || ConfigStringCollention.Count <= 0)
{
throw new Exception("web.config 中无连接字符串!");
}
ConnectionStringSettings StringSettings = null;
if (_confirString == string.Empty)
{
StringSettings = ConfigurationManager.ConnectionStrings["ConnectionString"];
}
else
{
StringSettings = ConfigurationManager.ConnectionStrings[_confirString];
}
return StringSettings.ConnectionString;
}
public static string GetProviderName()
{
ConnectionStringSettingsCollection ConfigStringCollention = ConfigurationManager.ConnectionStrings;
if (ConfigStringCollention == null || ConfigStringCollention.Count <= 0)
{
throw new Exception("web.config 中无连接字符串!");
}
ConnectionStringSettings StringSettings = null;
if (_confirString == string.Empty)
{
StringSettings = ConfigurationManager.ConnectionStrings["ConnectionString"];
}
else
{
StringSettings = ConfigurationManager.ConnectionStrings[_confirString];
}
return StringSettings.ProviderName;
}
DbConnection CreateConnection()
{
DbConnection connection = this.GetDbProviderFactorySecure().CreateConnection();
connection.ConnectionString = GetConnectionString();
return connection;
}
private DbProviderFactory GetDbProviderFactorySecure()
{
string providerName = GetProviderName();
return DbProviderFactories.GetFactory(providerName);
}
public IDbCommand GetSqlStringCommand(string commandText)
{
DbCommand command = this.GetDbProviderFactorySecure().CreateCommand();
command.CommandText = commandText;
command.Connection = connection;
return command;
}
DbDataAdapter CreateDataAdapter(IDbCommand command)
{
DbDataAdapter adapter = this.GetDbProviderFactorySecure().CreateDataAdapter();
adapter.SelectCommand =(DbCommand)command;
return adapter;
}
public int ExecuteNonQuery(IDbCommand cmd)
{
return cmd.ExecuteNonQuery();
}
public DataSet ExecuteDataSet(IDbCommand cmd)
{
DbDataAdapter adapter = CreateDataAdapter(cmd);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet, "ds");
return dataSet;
}
public void Dispose()
{
if (this.connection.State == ConnectionState.Open)
{
this.connection.Close();
}
}
}
}
使用简单示例
DBHelper.DBSybaseHelper db = new DBHelper.DBSybaseHelper();
IDbCommand cmd = db.GetSqlStringCommand(strSql.ToString());
DataSet ds = db.ExecuteDataSet(cmd);