2011-01-09 23 views
0

私は長年のASPプログラミング経験を持っていますが、私はASP.NETプログラミングの初心者です。ASP.NETとクラシックASPのデータベースに接続

私は1つのウェブサイトのコードを見ていましたが、私はこのウェブサイトをコード化したプログラマーがデータベースに2つの接続を行ったことに気付きました。 1つはWeb.configにあり、もう1つは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で

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

を、私は通常の私のデータベース接続コードを追加し、connection.aspと呼ばれる1つのASPファイルを作成しますこのファイルをデータベースと対話する他のすべてのASPページに添付します。 ASP.NETとはなぜ違いますか?

答えて

1

最初の接続は接続ではありません。それは単なる接続文字列の宣言です。他のコードは、接続文字列を使用してデータベースに接続します.ADODBで使用していたコードと多少似たコードを使用しています。

もう1つは、データソースコントロールの使用です。これは、別のコントロールにデータを供給できるコントロールです。それがASPに存在するようなものはありません。 1つのコントロールでデータを宣言し、FormViewコントロールまたはGridViewコントロールでそれを消費させ、追加のコードなしでCRUD操作を実行できる、純粋に宣言的なWebフォームが可能です。

http://www.asp.netのチュートリアルから始めることをおすすめします。

+0

2番目のページ(aspxページ)は、ドラッグアンドドロップの設計の結果と考えられます。 –

+0

@Sarwar:それは私が言ったことです。 –

+0

あなたの答えに支持コメントを追加しました:)新しい回答を投稿していません –

0

Web.configは、グローバル変数を格納できるだけのためです。技術的には、別のクラスを作成し、同じデータをそのcsファイルに保持するだけでは問題はありません。ただし、web.configを使用すると簡単にその接続を編集し、そのファイルに接続文字列を追加して、ConnectionManagerを使用してこれらの接続文字列を取得することができます。また、web.configファイルを暗号化することもできます。

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