ConnectionString属性尚未初始化。如何解决?

时间:2016-10-07 05:20:05

标签: c# winforms visual-studio-2013

我在类(Utility.cs)中使用方法(GetConnectionString())作为另一个类(Function.cs)中另一个方法(fillDT())的一部分。

internal class Utility
{
    internal static string GetConnectionString()
    {
        //Util-2 Assume failure.
        string returnValue = null;

        //Util-3 Look for the name in the connectionStrings section.
        ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings["Assignment_new.Properties.Settings.connString"];

        //If found, return the connection string.
        if (settings != null)
            returnValue = settings.ConnectionString;

        return returnValue;
    }
}

class Functions
{
    public static DataTable fillDT(string sqlstatement) //Fills the datatable with data from sqlstatement
    {
        string connstr = Assignment_new.Utility.GetConnectionString();
        SqlConnection con = new SqlConnection(connstr);
        con.Open();
        SqlDataAdapter sda = new SqlDataAdapter(sqlstatement, con);
        DataTable dt = new DataTable();
        sda.Fill(dt);
        return dt;
    }

每当我调用Functions.fillDT(@" sql语句")时,会弹出错误提示连接字符串未初始化。

2 个答案:

答案 0 :(得分:1)

确保使用正确的config文件来保存连接字符串。我看到您将此问题标记为WinForms,因此您的连接字符串应位于App.Config文件内,而不是Web.Config。如果这是一个Web应用程序,那么您应该执行相反的操作,将其保存在最顶层目录的Web.Config文件中。

此外,如果这是桌面应用程序并且您使用App.Config文件来保存设置,请确保将该文件复制到可执行文件所在的输出目录(通常与可执行文件同名)。即<EXNAme>.exe.config)。否则,当应用程序运行时,它将无法找到它。

答案 1 :(得分:0)

您刚刚检查了连接字符串是否为空。检查string.IsNullOrEmpty()以查看它是否为空。此外,您需要设置断点并检查您在app.config中看到的连接字符串值是否在代码中实际检索到且是否正确。