科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件三层架构之数据库访问层完全篇(C#)

三层架构之数据库访问层完全篇(C#)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文主要讲了三层架构之数据库访问层完全篇(C#) 。

作者: 冷枫 来源:CSDN 2008年1月27日

关键字: 访问层 数据库 三层结构 Linux

  • 评论
  • 分享微博
  • 分享邮件

 

三层架构之数据库访问层完全篇(C#) 
 
using System; 
using System.Data; 
using System.Data.SqlClient; 
using System.Configuration; 

namespace DbBase 


public abstract class Base 


#region "Fields of base calss" 

protected static string strConn = ConfigurationSettings.AppSettings["strConnection"]; 

protected static string strSQL; 

#endregion
 


#region "Properties of base class" 
}
 

#endregion 


#region "Functions of base class" 
public Base() 

// 
// TODO: Add constructor logic here 
// 
}
 

/// <summary> 
/// executing SQL commands 
/// </summary> 
/// <param name="strSQL">string</param> 
/// <returns>return int</returns> 

protected static int ExecuteSql(string strSQL) 

SqlConnection myCn 
= new SqlConnection(strConn); 
SqlCommand myCmd 
= new SqlCommand(strSQL,myCn); 
try 

myCn.Open(); 
myCmd.ExecuteNonQuery(); 
return 0
}
 
catch(System.Data.SqlClient.SqlException e) 

throw new Exception(e.Message); 
}
 
finally 

myCmd.Dispose(); 
myCn.Close(); 
}
 
}
 


/// <summary> 
///executing SQL commands 
/// </summary> 
/// <param name="strSQL">要执行的SQL语句,为字符串类型string</param> 
/// <returns>返回执行情况,整形int</returns> 

protected static int ExecuteSqlEx(string strSQL) 

SqlConnection myCn 
= new SqlConnection(strConn); 
SqlCommand myCmd 
= new SqlCommand(strSQL,myCn); 

try 

myCn.Open(); 
SqlDataReader myReader 
= myCmd.ExecuteReader(); 
if(myReader.Read()) 

return 0
}
 
else 

throw new Exception("Value Unavailable!"); 
}
 
}
 
catch(System.Data.SqlClient.SqlException e) 

throw new Exception(e.Message); 
}
 
finally 

myCmd.Dispose(); 
myCn.Close(); 
}
 
}
 


/// <summary> 
/// get dataset 
/// </summary> 
/// <param name="strSQL">(string)</param> 
/// <returns>(DataSet)</returns> 

protected static DataSet ExecuteSql4Ds(string strSQL) 

SqlConnection myCn 
= new SqlConnection(strConn); 
try 

myCn.Open(); 
SqlDataAdapter sda 
= new SqlDataAdapter(strSQL,myCn); 
DataSet ds 
= new DataSet("ds"); 
sda.Fill(ds); 
return ds; 
}
 
catch(System.Data.SqlClient.SqlException e) 

throw new Exception(e.Message); 
}
 
finally 

myCn.Close(); 
}
 
}
 


/// <summary> 
/// get single value 
/// </summary> 
/// <param name="strSQL">(string)</param> 
/// <returns>(int)</returns> 

protected static int ExecuteSql4Value(string strSQL) 

SqlConnection myCn 
= new SqlConnection(strConn); 
SqlCommand myCmd 
= new SqlCommand(strSQL,myCn); 
try 

myCn.Open(); 
object r = myCmd.ExecuteScalar(); 
if(Object.Equals(r,null)) 

throw new Exception("value unavailable!"); 
}
 
else 

return (int)r; 
}
 
}
 
catch(System.Data.SqlClient.SqlException e) 

throw new Exception(e.Message); 
}
 
finally 

myCmd.Dispose(); 
myCn.Close(); 
}
 
}
 


/// <summary> 
/// get object 
/// </summary> 
/// <param name="strSQL">(string)</param> 
/// <returns>(object)</returns> 

protected static object ExecuteSql4ValueEx(string strSQL) 

SqlConnection myCn 
= new SqlConnection(strConn); 
SqlCommand myCmd 
= new SqlCommand(strSQL,myCn); 
try 

myCn.Open(); 
object r = myCmd.ExecuteScalar(); 
if(Object.Equals(r,null)) 

throw new Exception("object unavailable!"); 
}
 
else 

return r; 
}
 
}
 
catch(System.Data.SqlClient.SqlException e) 

throw new Exception(e.Message); 
}
 
finally 

myCmd.Dispose(); 
myCn.Close(); 
}
 
}
 


/// <summary> 
/// execute multipul SQL commands 
/// </summary> 
/// <param name="strSQLs">string</param> 
/// <returns>int</returns> 

protected static int ExecuteSqls(string[] strSQLs) 

SqlConnection myCn 
= new SqlConnection(strConn); 
SqlCommand myCmd 
= new SqlCommand(); 
int j=strSQLs.Length; 

try 

myCn.Open(); 
}
 
catch(System.Data.SqlClient.SqlException e) 

throw new Exception(e.Message); 
}
 
SqlTransaction myTrans 
= myCn.BeginTransaction(); 

try 

myCmd.Connection 
= myCn; 
myCmd.Transaction 
= myTrans; 

foreach(string str in strSQLs) 

myCmd.CommandText 
= str; 
myCmd.ExecuteNonQuery(); 
}
 
myTrans.Commit(); 
return 0
}
 
catch(System.Data.SqlClient.SqlException e) 

myTrans.Rollback(); 
throw new Exception(e.Message); 
}
 
finally 

myCmd.Dispose(); 
myCn.Close(); 
}
 
}
 

#endregion
 
}
 

 
 
查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章