#c# #winforms #visual-studio-2013
#c# #winforms #visual-studio-2013
Вопрос:
Я использую метод (GetConnectionString()) в классе (Utility.cs) как часть другого метода (fillDT()) в другом классе (Function.cs).
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 statement»), появляется сообщение об ошибке, в котором говорится, что строка подключения не инициализирована.
Комментарии:
1. Покажите нам вашу строку подключения, чтобы сообщить вам о проблеме
Ответ №1:
Убедитесь, что вы используете правильные config
файлы для сохранения строки подключения. Я вижу, что вы помечаете этот вопрос как WinForms
, поэтому ваша строка подключения должна быть внутри App.Config
файла, а не внутри Web.Config
. Если это веб-приложение, то вам следует поступить наоборот, сохранить его в Web.Config
файле в самом верхнем каталоге.
Кроме того, если это настольное приложение, и вы используете App.Config
file для сохранения своих настроек, убедитесь, что файл скопирован в ваш выходной каталог, где находится исполняемый файл (обычно с тем же именем, что и исполняемый файл. т.е. <EXNAme>.exe.config
). В противном случае, когда приложение запускается, оно не найдет его.
Комментарии:
1. Я ищу строку в App.config и заменил «Assignment_new.Properties. Settings.connString» с тем, который я нашел, и он сработал.
Ответ №2:
Вы только что проверили, что ваша строка подключения равна нулю. Проверьте строку.IsNullOrEmpty(), чтобы проверить, не равно ли оно null . Кроме того, вам нужно установить точку останова и проверить, действительно ли значение строки подключения, которое вы видите в вашем app.config, получено в вашем коде, и оно правильное.
Комментарии:
1. Я только что проверил, и это показывает, что settings = null, и я действительно не знаю почему.