내가이 시나리오에서 asp.net의 정적 메서드는 좋지 않은 생각입니까?
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
namespace SomeNameSpace
{
public class DAL
{
public string _ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["xClassConnectionString"].ConnectionString;
public static DataSet GetDataSet(string sql)
{
try
{
using (SqlConnection connection2 = new SqlConnection(Convert.ToString(System.Configuration.ConfigurationManager.ConnectionStrings["xClassConnectionString"].ConnectionString)))
{
SqlCommand cmd = new SqlCommand(sql, connection2);
SqlDataAdapter adp = new SqlDataAdapter(cmd);
// Connection.Close();
DataSet ds = new DataSet();
adp.Fill(ds);
return ds;
}
}
catch (SqlException err)
{
// Replace the error with something less specific.
// You could also log the error now.
throw new ApplicationException("Data error. " + err.Message.ToString());
}
}
public static DataSet GetDataSet(string sql, Dictionary<string, dynamic> dictionary)
{
try
{
using (SqlConnection connection2 = new SqlConnection(Convert.ToString(System.Configuration.ConfigurationManager.ConnectionStrings["xClassConnectionString"].ConnectionString)))
{
SqlCommand cmd = new SqlCommand(sql, connection2);
cmd.CommandType = CommandType.Text;
//Dictionary<string, dynamic> dictionary = new Dictionary<string, dynamic>();
foreach (KeyValuePair<string, dynamic> pair in dictionary)
{
cmd.Parameters.AddWithValue(pair.Key, pair.Value);
}
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adp.Fill(ds);
return ds;
}
}
catch (SqlException err)
{
// Replace the error with something less specific.
// You could also log the error now.
throw new ApplicationException("Data error. " + err.Message.ToString());
}
}
public static DataTable GetDataTable(string sql)
{
DataSet ds = GetDataSet(sql);
if (ds.Tables.Count > 0)
return ds.Tables[0];
return null;
}
public static int ExecuteSQL(string sql)
{
try
{
using (SqlConnection connection2 = new SqlConnection(Convert.ToString(System.Configuration.ConfigurationManager.ConnectionStrings["xClassConnectionString"].ConnectionString)))
{
string BegSql = "BEGIN TRY BEGIN TRANSACTION ";
string EndSql = " COMMIT TRANSACTION END TRY BEGIN CATCH ROLLBACK TRANSACTION END CATCH";
string NewSql = BegSql + sql + EndSql;
sql = NewSql;
SqlCommand cmd = new SqlCommand(sql, connection2);
connection2.Open();
return cmd.ExecuteNonQuery();
}
}
catch (System.Exception ex)
{
return -1;
}
}
}
}
아래 내가 모든 기능을 보유하고 BAL 클래스를 가지고있는 것처럼하는 DAL 클래스가
내 질문이 좋은입니다
using Newtonsoft.Json; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.IO; using System.Net; using System.Net.Mail; using System.Web; using System.Web.Script.Serialization; using System.Web.UI; namespace SomeNameSpace { public class BAL { public static int getUserID(string user_name) { try { //string sql = "select user_id from CI_Users where [email protected]_name"; string sql = "select user_id from CI_Users where user_name=1"; return Convert.ToInt32(DAL.GetDataTable(sql).Rows[0][0]); } catch (System.Exception ex) { throw new ApplicationException("Data error." + ex.Message.ToString()); } } } }
/BAL의 모든 기능을 정적으로 작성하는 것은 좋지 않습니까? BAL에 모든 작업을 수행하도록 전화 할 것입니다. 제 생각에는
public static int getUserID(string user_name)
에 대한 엔터프라이즈 응용 프로그램을 재고를 개발하는 경우, 나에게 당신이 정적 변수를 필요로 할 때 –
을 즉석에서 몇 가지 방향을 제시 특성을 감싸고 내부에 작은 응용 프로그램을 개발하는 경우 그런데
변수를 저장하기 위해'HttpContext.Session'을 사용하십시오. –더 많은 정보/생각이 필요하십니까? –