CRUD的最佳方法

时间:2017-04-11 14:27:47

标签: c# ado.net

我已经使我的类静态用于数据库操作。所有的方法,如sql连接,插入,更新,删除也是静态的。使用静态适用于CRUD操作,如果不是CRud的最佳方法

public static class DBO     {

    public static SqlConnection GetConnection()
    {
        SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["myconnection"].ConnectionString);
        if (con.State != ConnectionState.Open)
        {
            con.Open();
        }
        return con;
    }

    public static int IUD(string sql, SqlParameter[] param, CommandType cmdType)
    {
        using (SqlConnection con = GetConnection())
        {

            SqlCommand cmd = new SqlCommand(sql, con);
            cmd.CommandType = cmdType;

            if (param != null)
            {
                cmd.Parameters.AddRange(param);
            }
            try
            {
                return cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {

                throw ex;
            }

        }
    }
    public static DataTable GetTable(string sql, SqlParameter[] param, CommandType cmdType)
    {
        using (SqlConnection con = GetConnection())
        {
            using (SqlCommand cmd = new SqlCommand(sql, con))
            {
                cmd.CommandType = cmdType;

                if (param != null)
                {
                    cmd.Parameters.AddRange(param);
                }
                SqlDataAdapter da = new SqlDataAdapter(cmd);

                DataTable dt = new DataTable();
                da.Fill(dt);

                return dt;

            }
        }
    }

1 个答案:

答案 0 :(得分:1)

你当然可以。它肯定会因提供商而异。您可以在这里了解MySql .Net Connector的实施方式。

这提出了一个问题,你为什么要这样做?

提供商为您提供应用程序可依赖的标准API。这允许您在任何时候以最少的努力切换提供者(显然我完全忽略了您选择的目标DBMS之间可能存在的SQL语法差异)。

如果是出于学术目的,希望MySql .Net Connector的来源可以为您提供帮助。