0

有谁知道我如何在 c# .net 中集中数据库连接(可能在 mian.master 中)?

我有以下用于 db 连接的代码,并用于调用差异存储过程来检索数据。

    string strConnString = ConfigurationManager.ConnectionStrings["testString"].ConnectionString;
    SqlConnection mySqlConnection = new SqlConnection(strConnString);
    SqlCommand mySqlCommand = mySqlConnection.CreateCommand();

    mySqlCommand.CommandText = "EXEC app_campaign_select @CampaignID=" + Request.QueryString["ixCampaign"].ToString();
    mySqlConnection.Open();
    SqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader();

而不是在每个页面中编码并多次连接到数据库,任何方式我都可以在母版页中编写以下连接代码并且只连接到数据库一次,然后每个页面可以在需要连接到数据库时调用它

    string strConnString = ConfigurationManager.ConnectionStrings["testString"].ConnectionString;
    SqlConnection mySqlConnection = new SqlConnection(strConnString);
    SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
    SqlDataReader mySqlDataReader;
4

2 回答 2

1

将其添加到静态 DAL 类并根据需要添加参数。

public static void YourFunction() {
    // your code
}

笔记:

当心这一行:mySqlCommand.CommandText = "EXEC app_campaign_select @CampaignID=" + Request.QueryString["ixCampaign"].ToString();

如果该 QueryString 来自用户在某处输入的值,则您可能会接受 SQL 注入。

于 2012-10-22T23:45:51.440 回答
1

当然。只需为您可能拥有的每种返回类型创建一个助手类,其中包含一些静态方法。将存储过程名称的字符串传递给一个字符串,并有一个重载的字符串,该字符串将一个字符串用于您要传入的 sql 语句。您也可以有一个只返回一个标量值的字符串。因此,您可能有 3 个左右的静态方法可以从任何页面调用。

于 2012-10-22T23:48:50.850 回答