asp.net C# Connection Class

本文关键字:Class Connection net asp | 更新日期: 2023-09-27 18:16:03

嗨,伙计们,我正试图创建一个连接类,可以通过整个项目中使用的只是调用对象。

如何添加命令参数以及如何为datareader创建方法?这是我的代码:

/// <summary>
/// Summary description for AccessDb
/// </summary>
public class AccessDb
{
    OleDbConnection con = new OleDbConnection();
    public DataTable dataTable = new DataTable();
    public AccessDb()
    {
        con.ConnectionString = ConfigurationManager.ConnectionStrings["connection"].ConnectionString;
    }
    public DataTable execDataTable(string command)
    {
        try
        {
            con.Open();
            OleDbCommand cmd = new OleDbCommand(command, con);
            OleDbDataAdapter da = new OleDbDataAdapter(cmd);
            da.Fill(dataTable);
            da.Dispose();
        }
        catch (Exception ex)
        {
            HttpContext.Current.Response.Write("<script>alert('something wrong with the connection '"+ ex.Message +")</script>");
        }
        finally 
        {
            con.Close();
        }
        return dataTable;
    }
}
这就是我如何调用类方法
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack) {
            AccessDb dbcon = new AccessDb();
            DataTable dt = dbcon.execDataTable("SELECT * FROM AGESNews");
            if (dbcon.dataTable.Rows.Count > 0) {
                grd.DataSource = dt;
                grd.DataBind();
            }
        }
    }
}

asp.net C# Connection Class

你应该让你的ExecDataTable带一个OleDbCommand

public DataTable ExecDataTable(OleDbCommand cmd)
{
    try
    {
        con.Open();
        if(cmd.Connection == null)
           cmd.Connection = con;
        OleDbDataAdapter da = new OleDbDataAdapter(cmd);
        da.Fill(dataTable);
        da.Dispose();
    }
    catch
    {
        throw;
    }
    finally 
    {
        con.Close();
    }
    return dataTable;
}

如何调用这个方法

OleDbCommand cmd = new OleDbCommand("SELECT * FROM AGESNews WHERE ID=@ID");
cmd.Parameters.AddWithValue("@ID", yourParameterIDValue);
DataTable dt = dbcon.execDataTable(cmd);