首页 > 解决方案 > C# - ConnectionString 属性尚未初始化

问题描述

我只是在学习c#。我正在尝试以 c# windows 形式制作简单的 CRUD,但出现了一些错误。错误说The ConnectionString property has not been initialized. 下面的代码显示了我是如何尝试的。

App.config用于连接SQL SERVER

<connectionStrings>
<add name="connectionstr" connectionString="Data Source=DESKTOP-F8UCLUB;Initial Catalog=bug_tracker;Integrated Security=True" />

DBConnection

class DBConnection
{
    private string connectionString = ConfigurationManager.ConnectionStrings["connectionstr"].ConnectionString;

    public SqlConnection GetConnection()
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            if (connection.State == ConnectionState.Closed)
            {
                connection.Open();
            }
            return connection;
        }
    }
}

插入函数

 public void Insert(Programmer t)
    {
        conn.Open();
        IDbTransaction trans = null;

        try
        {
            conn.BeginTransaction();

            SqlCommand sql = new SqlCommand(null, conn);
            sql.CommandText = "INSERT INTO tbl_programmer VALUES(@fullName, @username, @password)";
            sql.Parameters.AddWithValue("@fullName", t.FullName);
            sql.Parameters.AddWithValue("@username", t.Username);
            sql.Parameters.AddWithValue("@password", t.Password);

            sql.Prepare();
            sql.ExecuteNonQuery();

            trans.Commit();
        }
        catch (SqlException ex)
        {
            trans.Rollback();
            throw ex;
        }
        finally
        {
            conn.Close();
        }
    }

标签: c#

解决方案


问题是using关键字。 using指令只能使用一次性物品。

如果您在 using 块中创建任何实例,则该实例可使用花括号..

 public SqlConnection GetConnection()
    {
        SqlConnection connection = new SqlConnection(connectionString);
            if (connection.State == ConnectionState.Closed)                
                connection.Open();

            return connection;            
    }

推荐阅读