连接到ASP.NET与Classic ASP中的数据库

时间:2011-01-09 07:04:49

标签: asp.net database asp-classic database-connection

我有多年的ASP编程经验,但我是ASP.NET编程的新手。

我正在查看一个网站的代码,我注意到编写本网站的程序员与数据库建立了两个连接。一个在Web.config中,另一个在ASPX页面中。

Web.config有这个:

<connectionStrings>
    <add name="pearl" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Hosting\7195242\html\db\xxx.mdb" providerName="System.Data.OleDb" />  
</connectionStrings>

ASPX页面有这个:

<asp:AccessDataSource ID="AccessDataSource1" runat="server"
    DataFile="D:\Hosting\7195242\html\db\xxx.mdb"
    SelectCommand="SELECT * FROM [Pearl_PageContents]">
</asp:AccessDataSource>

使用ASP,我通常会创建一个名为connection.asp的ASP文件,在此文件中添加我的数据库连接代码,并将其附加到与数据库交互的所有其他ASP页面。为什么它与ASP.NET不同?

3 个答案:

答案 0 :(得分:1)

第一个不是连接。它只是连接字符串的声明。其他一些代码将使用连接字符串连接到数据库,可能使用与您习惯使用的ADODB类似的代码。

第二个是使用数据源控件。这是一个可以向另一个控件提供数据的控件。 ASP中没有类似的东西。它允许纯粹声明性的Web表单,您可以在一个控件中声明数据,并使用FormView或GridView控件来执行该操作,完成CRUD操作而不需要额外的代码。

我建议您从http://www.asp.net的教程开始。

答案 1 :(得分:0)

Web.config只是为了存储全局变量。在技​​术上,创建另一个类并在该cs文件中保存相同的数据没有任何问题。但是,使用web.config,您可以轻松编辑该连接,向该文件添加更多连接字符串,然后使用ConnectionManager来获取任何这些连接字符串。您还可以加密web.config文件。

答案 2 :(得分:0)

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

namespace Volta_Reporting_Application.DBL
{
    public class DBHandler
    {
        public SqlConnection _SqlConnection { get; set; }
        public String _SqlConnectionString { get; set; }
        public DataSet _DataSet { get; set; }
        public List<SqlCommand> _CommandList { set; get; }
        public DBHandler()
        {
            //_SqlConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; ;
            _SqlConnectionString = Helpers.Helper.GetConnectionString();
        }
        public bool OpenConnection()
        {

                _SqlConnection = new SqlConnection(_SqlConnectionString);
            if (SqlConnection != null && SqlConnection.State == ConnectionState.Closed)
            {

                _SqlConnection.Open();
            }
   .Open);
        }

        public bool CloseConnection()
        {
            if (SqlConnection != null && SqlConnection.State == ConnectionState.Open)
                _SqlConnection.Close();
            if (_SqlConnection != null)
                _SqlConnection.Dispose();
            return _SqlConnection == null;
        }
        public object ExecuteMyCommand(SqlCommand cmd) 
        {
            bool res = false;
            try
            {
                OpenConnection();
                cmd.Connection = _SqlConnection;
                if (cmd.ExecuteNonQuery() > 0)
                {
                    res = true;
                }
            }
            catch (Exception)
            {

                res = false;
            }
            finally 
            {
                CloseConnection();
            }
            return res;
        }

        public object CRUD(string Query, char operation = 'c')
        {
            operation = char.Parse(operation.ToString().ToLower());
            object res = null;
            try
            {
                OpenConnection();
                SqlDataAdapter da = new SqlDataAdapter();
                switch (operation)
                {
                    case 'c':
                    case 'i':
                        da.InsertCommand = _SqlConnection.CreateCommand();
                        da.InsertCommand.CommandText = Query;
                        da.InsertCommand.ExecuteNonQuery();
                        res = true; 
                        break;
                    case 'z':
                        da.SelectCommand = _SqlConnection.CreateCommand();
                        da.SelectCommand.CommandText = Query;
                        return da.SelectCommand.ExecuteScalar();
                    case 's':
                    case 'r':
                        DataSet ds = new DataSet();
                        da.SelectCommand = _SqlConnection.CreateCommand();
                        da.SelectCommand.CommandText = Query;
                        //da.SelectCommand.ExecuteReader();
                        da.Fill(ds);
                        res = ds;
                       //ds.Dispose(); 
                        break;
                    case 'u':
                        da.UpdateCommand = _SqlConnection.CreateCommand();
                        da.UpdateCommand.CommandText = Query;
                        res=da.UpdateCommand.ExecuteNonQuery();
                        break;
                    case 'd':
                        da.DeleteCommand = _SqlConnection.CreateCommand();
                        da.DeleteCommand.CommandText = Query;
                        da.DeleteCommand.ExecuteNonQuery();
                        res = true;
                        break;
                    default: break;
                }
                if (res == null)
                    res = false;
            }
            catch (Exception)
            {
                res = null;
            }
            finally
            {
                CloseConnection();
            }
             return res;
        }
    }
}