为ASP.NET网站创建DAL
我正在使用Microsoft Visual Studio为ASP.NET网站创建DAL,asp.net,gridview,data-access-layer,Asp.net,Gridview,Data Access Layer,我正在使用Microsoft Visual StudioDAL进行工作,在该程序中,我使用传统方法获取/更新数据,通过从网站数据库的ItemDetails表中检索数据来显示对网站所列项目的评论,以创建ItemDetails.aspx文件。我添加了一个DropDownList控件来显示其类别中的所有项目。 从下拉列表中选择类别时,它将显示该类别中的所有项目,并向其附加一个超链接“显示详细信息”,以在网格视图中显示详细信息。 我是新手,我不知道如何为asp.net网站创建DAL。需要简单的指南来创建
DAL
进行工作,在该程序中,我使用传统方法获取/更新数据,通过从网站数据库的ItemDetails
表中检索数据来显示对网站所列项目的评论,以创建ItemDetails.aspx
文件。我添加了一个DropDownList控件来显示其类别中的所有项目。
从下拉列表中选择类别时,它将显示该类别中的所有项目,并向其附加一个超链接“显示详细信息”
,以在网格视图中显示详细信息。
我是新手,我不知道如何为asp.net网站创建
DAL
。需要简单的指南来创建asp.net网站的DAL。我们将不胜感激。创建DAL的其他方法有哪些,而不是SQLadapter
,例如,这里有一个我以前用于调用SPs的DAL
它允许您执行存储过程并返回数据集、数据表、成功响应等
实际上,这取决于您打算如何访问数据,您是在编写存储过程还是在代码中有查询。您还可以选择使用实体框架/LINQ
using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Configuration;
public class _DataInteraction
{
#region "Stored Procedures"
public static DataTable stdReturnDataTableQuery(string procedureName, string db)
{
DataTable myDataTable;
SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[db].ConnectionString);
SqlCommand cmd = new SqlCommand();
SqlDataAdapter myDataAdapter = new SqlDataAdapter();
cmd.CommandText = procedureName;
cmd.CommandType = CommandType.Text;
cmd.Connection = myConnection;
//-----------------------------------------------------------------------
// make our datatable to return
//-----------------------------------------------------------------------
myDataTable = new DataTable();
//-----------------------------------------------------------------------
// fill the datatable with the stored procedure results
//-----------------------------------------------------------------------
try
{
myConnection.Open();
myDataAdapter.SelectCommand = cmd;
myDataAdapter.Fill(myDataTable);
}
catch (Exception ex)
{
//flag as error happened
throw ex;
}
finally
{
myConnection.Close();
if ((myDataAdapter != null))
myDataAdapter.Dispose();
if ((cmd != null))
cmd.Dispose();
}
return myDataTable;
}
// Return a datatable from the database
public static DataTable stdReturnDataTable(string procedureName, List<SqlParameter> myParameters, string db)
{
SqlConnection myConnection = default(SqlConnection);
SqlCommand myCommand = default(SqlCommand);
SqlDataAdapter myDataAdapter = default(SqlDataAdapter);
DataTable myDataTable = default(DataTable);
string connString = null;
// -----------------------------------------------------------------------
// create instance of connection
// -----------------------------------------------------------------------
connString = ConfigurationManager.ConnectionStrings[db].ConnectionString;
myConnection = new SqlConnection();
myConnection.ConnectionString = connString;
//-----------------------------------------------------------------------
// create instance of command and dataadapter
//-----------------------------------------------------------------------
myCommand = new SqlCommand(procedureName, myConnection);
myDataAdapter = new SqlDataAdapter(myCommand);
//-----------------------------------------------------------------------
// say its a stored procedure command
//-----------------------------------------------------------------------
myCommand.CommandType = CommandType.StoredProcedure;
//-----------------------------------------------------------------------
// add any parameters?
//-----------------------------------------------------------------------
if ((myParameters != null))
{
foreach (SqlParameter myParm in myParameters)
{
// add the parameter to the command
myCommand.Parameters.Add(myParm);
}
}
//-----------------------------------------------------------------------
// make our datatable to return
//-----------------------------------------------------------------------
myDataTable = new DataTable();
//-----------------------------------------------------------------------
// fill the datatable with the stored procedure results
//-----------------------------------------------------------------------
try
{
myConnection.Open();
myDataAdapter.Fill(myDataTable);
}
catch (Exception ex)
{
//flag as error happened
throw ex;
}
finally
{
myConnection.Close();
if ((myDataAdapter != null))
myDataAdapter.Dispose();
if ((myCommand != null))
myCommand.Dispose();
}
return myDataTable;
}
// Return a dataset from the database
public static DataSet stdReturnDataset(string procedureName, List<SqlParameter> myParameters, string db)
{
SqlConnection myConnection = default(SqlConnection);
SqlCommand myCommand = default(SqlCommand);
SqlDataAdapter myDataAdapter = default(SqlDataAdapter);
DataSet ds = new DataSet();
string connString = null;
//-----------------------------------------------------------------------
// create instance of connection
//-----------------------------------------------------------------------
connString = ConfigurationManager.ConnectionStrings[db].ConnectionString;
myConnection = new SqlConnection();
myConnection.ConnectionString = connString;
//-----------------------------------------------------------------------
// create instance of command and dataadapter
//-----------------------------------------------------------------------
myCommand = new SqlCommand(procedureName, myConnection);
myDataAdapter = new SqlDataAdapter(myCommand);
//-----------------------------------------------------------------------
// say its a stored procedure command
//-----------------------------------------------------------------------
myCommand.CommandType = CommandType.StoredProcedure;
//-----------------------------------------------------------------------
// add any parameters?
//-----------------------------------------------------------------------
if ((myParameters != null))
{
foreach (SqlParameter myParm in myParameters)
{
// add the parameter to the command
myCommand.Parameters.Add(myParm);
}
}
//-----------------------------------------------------------------------
// fill the datatable with the stored procedure results
//-----------------------------------------------------------------------
try
{
myConnection.Open();
myDataAdapter.Fill(ds);
}
catch (Exception ex)
{
//flag as error happened
throw ex;
}
finally
{
myConnection.Close();
if ((myDataAdapter != null))
myDataAdapter.Dispose();
if ((myCommand != null))
myCommand.Dispose();
}
return ds;
}
// Return success from a query from the database
public static bool db_NonQuerySuccessResponse(string strCommandText, List<SqlParameter> myParameters, string db)
{
SqlConnection SQLConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[db].ConnectionString);
SqlCommand SQLCommand = new SqlCommand();
DataSet ds = new DataSet();
string Value = "";
bool success = false;
try
{
SQLCommand.CommandText = strCommandText;
SQLCommand.CommandType = CommandType.StoredProcedure;
SQLCommand.Parameters.Clear();
if ((myParameters != null))
{
foreach (SqlParameter myParm in myParameters)
{
// add the parameter to the command
SQLCommand.Parameters.Add(myParm);
}
}
SQLCommand.Connection = SQLConnection;
SQLConnection.Open();
SQLCommand.ExecuteNonQuery();
SQLConnection.Close();
success = true;
}
catch (Exception ex)
{
success = false;
return success;
}
return success;
}
// General non query, no results no success
public static bool db_NonQuery(string strCommandText, List<SqlParameter> myParameters, string db)
{
SqlConnection SQLConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[db].ConnectionString);
SqlCommand SQLCommand = new SqlCommand();
DataSet ds = new DataSet();
try
{
SQLCommand.CommandText = strCommandText;
SQLCommand.CommandType = CommandType.StoredProcedure;
SQLCommand.Parameters.Clear();
if ((myParameters != null))
{
foreach (SqlParameter myParm in myParameters)
{
// add the parameter to the command
SQLCommand.Parameters.Add(myParm);
}
}
SQLCommand.Connection = SQLConnection;
SQLConnection.Open();
SQLCommand.ExecuteNonQuery();
SQLConnection.Close();
}
catch (Exception ex)
{
return false;
}
return true;
}
//// Execute scalar on db
//public static string db_Scalar(string strCommandText, ref List<SqlParameter> myParameters, string db)
//{
// SqlConnection SQLConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[db].ConnectionString);
// SqlCommand SQLCommand = new SqlCommand();
// string Value = "";
// SQLCommand.CommandText = strCommandText;
// SQLCommand.CommandType = CommandType.StoredProcedure;
// SQLCommand.Parameters.Clear();
// if ((myParameters != null))
// {
// foreach (SqlParameter myParm in myParameters)
// {
// // add the parameter to the command
// SQLCommand.Parameters.Add(myParm);
// }
// }
// SQLCommand.Connection = SQLConnection;
// SQLConnection.Open();
// Value = SQLCommand.ExecuteScalar;
// SQLConnection.Close();
// return Value;
//}
#endregion
}
使用系统;
使用System.Collections.Generic;
使用System.Web;
使用系统数据;
使用System.Data.Sql;
使用System.Data.SqlClient;
使用系统配置;
公共类\u数据交互
{
#区域“存储过程”
公共静态数据表stdReturnDataTableQuery(stringprocedurename,stringdb)
{
数据表myDataTable;
SqlConnection myConnection=新的SqlConnection(ConfigurationManager.ConnectionString[db].ConnectionString);
SqlCommand cmd=新的SqlCommand();
SqlDataAdapter myDataAdapter=新的SqlDataAdapter();
cmd.CommandText=procedureName;
cmd.CommandType=CommandType.Text;
cmd.Connection=myConnection;
//-----------------------------------------------------------------------
//使我们的数据表返回
//-----------------------------------------------------------------------
myDataTable=新数据表();
//-----------------------------------------------------------------------
//用存储过程结果填充数据表
//-----------------------------------------------------------------------
尝试
{
myConnection.Open();
myDataAdapter.SelectCommand=cmd;
填充(myDataTable);
}
捕获(例外情况除外)
{
//标记为发生错误
掷骰子;
}
最后
{
myConnection.Close();
如果((myDataAdapter!=null))
myDataAdapter.Dispose();
如果((cmd!=null))
cmd.Dispose();
}
返回myDataTable;
}
//从数据库返回数据表
公共静态数据表stdReturnDataTable(字符串过程重命名,列表myParameters,字符串db)
{
SqlConnection myConnection=default(SqlConnection);
SqlCommand myCommand=default(SqlCommand);
SqlDataAdapter myDataAdapter=默认值(SqlDataAdapter);
DataTable myDataTable=默认值(DataTable);
字符串connString=null;
// -----------------------------------------------------------------------
//创建连接的实例
// -----------------------------------------------------------------------
connString=ConfigurationManager.ConnectionString[db].ConnectionString;
myConnection=newsqlconnection();
myConnection.ConnectionString=connString;
//-----------------------------------------------------------------------
//创建命令和数据适配器的实例
//-----------------------------------------------------------------------
myCommand=newsqlcommand(procedureName,myConnection);
myDataAdapter=新的SqlDataAdapter(myCommand);
//-----------------------------------------------------------------------
//假设这是一个存储过程命令
//-----------------------------------------------------------------------
myCommand.CommandType=CommandType.StoredProcess;
//-----------------------------------------------------------------------
//添加任何参数?
//-----------------------------------------------------------------------
如果((myParameters!=null))
{
foreach(myParameters中的SqlParameter myParm)
{
//将参数添加到命令中
myCommand.Parameters.Add(myParm);
}
}
//-----------------------------------------------------------------------
//使我们的数据表返回
//-----------------------------------------------------------------------
myDataTable=新数据表();
//-----------------------------------------------------------------------
//用存储过程结果填充数据表
//-----------------------------------------------------------------------
尝试
{
myConnection.Open();
填充(myDataTable);
}
捕获(例外情况除外)
{
//标记为发生错误
掷骰子;
}
最后
{
myConnection.Close();
如果((myDataAdapter!=null))
myDataAdapter.Dispose();
if((myCommand!=null))
myCommand.Dispose();
}
返回myDataTable;
}
//从数据库返回数据集
公共静态数据集stdReturnDataset(字符串过程重命名、列表myParameters、字符串数据库)
{
SqlConnection myConnection=default(SqlConnection);
SqlCommand myCommand=default(SqlCommand)
public List<T> GetRequests(string strNo)
{
List<T> objlstMapping = null;
Mapping objMapping = null;
try
{
Database objDbInstance = CreateSQLDatabase(DbConnection.MF);
using (DbCommand objDbCommand = objDbInstance.GetStoredProcCommand(Constants.SP_QUESTS))
{
DALBase.AddDbParam(objDbInstance, objDbCommand, "@No", DbType.AnsiString, ParameterDirection.Input, strFolioNo);
objDbCommand.Connection = objDbInstance.CreateConnection();
objDbCommand.Connection.Open();
using (DbDataReader dr = objDbCommand.ExecuteReader(CommandBehavior.CloseConnection))
{
objMapping = new List<T>();
if (dr.HasRows)
{
while (dr.Read())
{
objMapping = new BrokerFolioMapping();
objMapping .Brok_Code = SProposedValue(dr, "Code");
objMapping .Active = SProposedValue(dr, "Status");
objMapping .AccStmt_Active = SProposedValue(dr, "PortfolioStatus");
objlstFolioMapping.Add(objMapping );
}
}
}
}
}
catch (Exception ex)
{
}
return objlstFolioMapping;
}