Подключение к базе данных в ASP.NET vs. Classic ASP - PullRequest
0 голосов
/ 09 января 2011

У меня многолетний опыт программирования на 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,Обычно я создаю один файл ASP с именем connection.asp, добавляю коды подключения к моей базе данных в этот файл и присоединяю его ко всем другим страницам ASP, которые взаимодействуют с базой данных.Чем отличается ASP.NET?

Ответы [ 3 ]

1 голос
/ 09 января 2011

Первый не является связью. Это просто объявление строки подключения. Какой-то другой фрагмент кода будет использовать строку подключения для подключения к базе данных, возможно, используя код, несколько похожий на тот, который вы использовали в ADODB.

Вторым является использование элемента управления источником данных. Это элемент управления, который может передавать данные другому элементу управления. Ничего подобного не существует в ASP. Он допускает чисто декларативные веб-формы, где вы можете объявить данные в одном элементе управления и использовать их для элемента управления FormView или GridView, выполняя операции CRUD без дополнительного кода вообще.

Я рекомендую начать с уроков http://www.asp.net.

0 голосов
/ 18 апреля 2015
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;
        }
    }
}
0 голосов
/ 09 января 2011

Web.config предназначен для хранения глобальных переменных.Технически нет ничего плохого в том, чтобы просто создать другой класс и сохранить те же данные в этом файле cs.Однако с помощью web.config вы можете легко отредактировать это соединение, добавить дополнительные строки соединений в этот файл и затем использовать ConnectionManager для захвата любой из этих строк соединения.Вы также можете зашифровать файл web.config.

...