我在类(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语句")时,会弹出错误提示连接字符串未初始化。
答案 0 :(得分:1)
确保使用正确的config
文件来保存连接字符串。我看到您将此问题标记为WinForms
,因此您的连接字符串应位于App.Config
文件内,而不是Web.Config
。如果这是一个Web应用程序,那么您应该执行相反的操作,将其保存在最顶层目录的Web.Config
文件中。
此外,如果这是桌面应用程序并且您使用App.Config
文件来保存设置,请确保将该文件复制到可执行文件所在的输出目录(通常与可执行文件同名)。即<EXNAme>.exe.config
)。否则,当应用程序运行时,它将无法找到它。
答案 1 :(得分:0)
您刚刚检查了连接字符串是否为空。检查string.IsNullOrEmpty()以查看它是否为空。此外,您需要设置断点并检查您在app.config中看到的连接字符串值是否在代码中实际检索到且是否正确。