在整个IT行业中的企业级应用开发主要是数据(DB2、Oracle、Sybase、sql-server、Informix等)+.net/java/vb/C++/asp/php的开发对数据的添、删、改、查的企业级应用,我在平常的学习、工作、生活中听到大家对数据在整个项目中有着不同的看法比如说(“数据一定要学好,因为企业级开发全就是与数据打交道。”,“作为开发人员对数据的研究太深没有什么意思,除非你有常充份的时间。开发人员吗不就是对数据的添、删、改、查,只要懂得基本的SQL就可以了。”,“在中、小型企业的项目中只要有看得SQL的水平就可以了,现在市场上流行的如j2ee中的Hibernate、spring,.net中的NHibernate还有自已写的一些数据访问层,又有着非常强的面向对象的思想连一条sql都不用写了。”,“数据库吗只是作为存数据的一个东西而已吗。作为开发人员没有必要深研。”)等......。你要说他们的说法是错的吗,也不完全是错了,也不完全是对的。那又为什么不同的公司为了能够让自已的数据有更大的市场花费巨资来开更强大的数据库产品,经我对各种技术的了解和经验告诉我其实他们存在都有着存在的理由,其实在我们的对数据在项目的作用是对项目的大小来定位的,比如说一个很小的企业只是对人事进行管理你不可能使用一个DB2吧,你有可能是用Access/MySql就可以了这时数据库就是只一个存储数据的东西而已了,如果说是一个大型企业如是移动的项目他们处理的数据就是海量数据你不可能用Access、sql-server了吧而这时你肯定是用DB2/Oracle了对于海量数据,你如果是用j2ee中的hibernate 有可能你的数据会在10分钟之后才会出结果,这时的Sql肯定是写在数据库中并且肯定对其进行了优化了,而数据库肯定就是项目中成为主导作用j2ee/.net也就成为项目的辅助。
posted @
2006-07-03 18:15 谭玉 阅读(99) |
评论 (0) |
编辑
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace DAL
{
public class DALEmployee
{
private SqlConnection con = null;
private string connectionString ;
private string sqlExpress;
/// <summary>
/// 生成的sql语句
/// </summary>
public string SqlExpress {
// set { this.sqlExpress = value; }
get { return this.sqlExpress; }
}
/// <summary>
/// 用户要查询的表或视图的名称
/// </summary>
private string m_viewName;
/// <summary>
/// 用户要查询的表或视图的名称
/// </summary>
public string ViewName {
set { this.m_viewName = value; }
get { return this.m_viewName; }
}
/// <summary>
/// 搜索条件
/// </summary>
private string m_brush;
/// <summary>
/// 搜索条件
/// </summary>
public string Brush {
set { this.m_brush = value; }
get { return this.m_brush; }
}
public DALEmployee() {
this.connectionString = ConfigurationManager.ConnectionStrings["ScienceProduct"].ConnectionString;
this.Init();
}
///// <summary>
/////
///// </summary>
///// <param name="connectionString">数据库连接字符串</param>
//public DALEmployee(string connectionString) {
// this.connectionString = connectionString;
// this.Init();
//}
/// <summary>
/// 对象初使化
/// </summary>
private void Init() {
this.sqlExpress = "select * from ";
this.con = new SqlConnection();
this.con.ConnectionString = this.connectionString;
}
#region "执行查询"
/// <summary>
/// 执行视图或表的查询
/// </summary>
/// <param name="viewName">视图或表名称</param>
/// <param name="columns">返回的字段</param>
/// <returns></returns>
public DataTable ExecuteQuery(string viewName,string []columns) {
this.ViewName = viewName;
string sql = "";
int i = 0;
foreach (string str in columns)
{
if (i == 0)
{ sql = str; }
else
{ sql = sql + "," + sql; }
}
this.sqlExpress = string.Format("select {0} from ", sql);
return this.ExecuteQuery();
}
/// <summary>
/// 执行视图或表的查询
/// </summary>
/// <param name="viewName">视图或表名称</param>
/// <returns></returns>
public DataTable ExecuteQuery(string viewName)
{
this.ViewName = viewName;
return this.ExecuteQuery();
}
/// <summary>
/// 执行视图或表的查询
/// </summary>
/// <param name="viewName">视图或表名称</param>
/// <param name="brush">刷选条件(传入where语句)</param>
/// <param name="columns">返回的字段</param>
/// <returns></returns>
public DataTable ExecuteQuery(string viewName,string brush,string[] columns )
{
this.ViewName = viewName;
this.Brush = brush;
string sql = "";
int i = 0;
foreach (string str in columns)
{
if (i == 0)
{ sql = str; }
else
{ sql = sql + "," + sql; }
}
this.sqlExpress = string.Format("select {0} from ", sql);
return this.ExecuteQuery();
}
/// <summary>
/// 执行视图或表的查询
/// </summary>
/// <param name="brush">刷选条件(传入where语句)</param>
/// <param name="viewName">视图或表名称</param>
/// <returns></returns>
public DataTable ExecuteQuery(string viewName,string brush)
{
this.ViewName = viewName;
this.Brush = brush;
return this.ExecuteQuery();
}
/// <summary>
/// 对用户的请求进行查询
/// </summary>
/// <returns></returns>
public DataTable ExecuteQuery() {
if (this.ViewName == "") { throw new NullReferenceException("必须要设轩视图或表的名称"); }
sqlExpress = string.Concat(this.sqlExpress , this.ViewName, " where 1=1 ", this.Brush);
return this.ExecuteSql();
}
/// <summary>
/// 对用户的请求进行查询
/// </summary>
/// <param name="sqlExpress">完整的Sql查询语句</param>
/// <param name="i">输入任意的数字已构成重载</param>
/// <returns></returns>
public DataTable ExecuteQuery(string sqlExpress,int i) {
this.sqlExpress = sqlExpress;
return this.ExecuteSql();
}
/// <summary>
/// 运行生成的sql语句
/// </summary>
/// <returns></returns>
private DataTable ExecuteSql() {
SqlCommand com = new SqlCommand();
com.Connection = this.con;
com.CommandText = sqlExpress;
SqlDataAdapter da = new SqlDataAdapter(com);
DataTable tb = new DataTable();
try
{
this.con.Open();
da.Fill(tb);
}
catch (SqlException e)
{
throw e;
}
catch (Exception e)
{
throw e;
}
finally
{
try
{
this.con.Close();
}
catch { }
}
return tb;
}
#endregion
}
}
posted @
2006-04-20 11:39 谭玉 阅读(53) |
评论 (0) |
编辑