[转]强壮的DBHelper(3)

Version3.0:使用存储过程。
public class DBHelper
    {
        SqlConnection cnn = new SqlConnection(@"server=.;uid=sa;pwd=;database=testDB;");
        public int ExecuteNonQuery(string procName, SqlParameter[] ps)
        {
            SqlCommand cmd = cnn.CreateCommand();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = procName;
            cmd.Parameters.AddRange(ps);
            cnn.Open();
            int x = cmd.ExecuteNonQuery();
            cnn.Close();
            return x;
        }
        public DataTable GetTable(string procName, SqlParameter[] ps)
        {
            SqlCommand cmd = cnn.CreateCommand();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = procName;
            cmd.Parameters.AddRange(ps);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            da.Fill(dt);
            return dt;
        }
        public object GetScalar(string procName, SqlParameter[] ps)
        {
            SqlCommand cmd = cnn.CreateCommand();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = procName;
            cmd.Parameters.AddRange(ps);
            cnn.Open();
            object obj = cmd.ExecuteScalar();
            cnn.Close();
            return obj;
        }
    }
存储过程可以看做是数据库中的可执行方法,这样一来,供程序调用的只是存储过程的名称和参数了,你想改啥?
字段?太小,大一点。
表?可以试试手。
在以前,表的改动通常牵扯的方面是在太广泛了,因此更改表是一件非常慎重的工作。但是现在呢,只要保持这个数据库中的存储过程的参数和返回的数据不变,剩下的事,你随便。反正对于程序来说,有没有表,它不知道,它只知道存储过程。
没问题了吗?
数据库中还有一个很重要的玩意,叫事务,处理了吗?
土鳖扛铁牛。
posted @ 2011-03-02 00:09  愤怒的熊猫  阅读(150)  评论(0编辑  收藏  举报