c# - 如何通过一次调用来依次运行sql语句

标签 c# sqlconnection

嗨,我正在尝试使用此代码 -

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["train_debConnectionString"].ConnectionString);

用于根据 webconfig 文件中的连接字符串名称创建连接字符串。

我收到此错误 - 未将对象引用设置为对象的实例。

请告诉我如何仅使用 webconfig 文件中的连接字符串名称来创建一个 sql 连接。

最佳答案

您不想只构建一个 SqlConnection。您永远不应该共享连接。这涉及到资源问题。当您需要连接时,构建它、打开它、使用它并释放它。

此外,在使用对象时,您需要利用 using 语句:

var cString = ConfigurationManager
    .ConnectionStrings["train_debConnectionString"]
    .ConnectionString;
using (SqlConnection c = new SqlConnection(cString))
{
    using (SqlCommand cmd = new SqlCommand(sqlCmd, c))
    {

    }
}

更新:如果问题是关于以更简洁的方式获取连接字符串,您可以自己构建一个设置类,如下所示:

public static class AppSettings
{
    public static string ConnString
    {
        get
        {
            return ConfigurationManager
                .ConnectionStrings["train_debConnectionString"]
                .ConnectionString
        }
    }
}

然后执行以下操作:

using (SqlConnection c = new SqlConnection(AppSettings.ConnString))
{
    using (SqlCommand cmd = new SqlCommand(sqlCmd, c))
    {

    }
}

关于c# - 如何通过一次调用来依次运行sql语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20377410/

相关文章:

c# - 我想在 linq 中添加 2 个月后的月份和年份

c# - 给定日期时间的年龄(以年为单位,具有小数精度)

c# - Ado.net Sql 连接

c# - 测试 SQL 连接字符串可用性的最有效方法

java - 无法通过 Android 测试连接到 Sql Server

c# - DbProviderFactory 代码与用于在 ADO.Net 中创建 SqlConnection 的代码的关系

c# - 在 AWS Lambda serverless.template 文件中设置 EndpointConfiguration

c# - 如何在 Blazor 中使用 DataAnnotationsValidator 验证两个字段是否匹配?

VB.NET 如果抛出异常,SqlConnection 是否会在 Try/Catch 中自动关闭?

c# - 如何处理 NUnit 中抛出的异常