百度空间 | 百度首页 
 
查看文章
 
SQL Anywhere 11 .net 简单数据访问类
2009年05月15日 星期五 10:46

<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);


类别:asp.net | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu