У меня возникли проблемы с моей собственностью, всегда имеющей значение null в моем приложении, но я считаю, что проблема может быть более глубокой. Требование состоит в том, чтобы класс данных, содержащий мою строку подключения, в мою базу данных доступа. Это вызывает другой класс, который извлекает информацию о базе данных и возвращает ее обратно в класс слоя данных. Затем я должен использовать ТОЛЬКО класс уровня данных для получения моих записей. Проблема в том, что мое свойство всегда равно нулю. Вот код для класса слоя данных:Проблема с моей собственностью с использованием C#
{
class CustomerDL
{
OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=CIS3341.accdb;");
string names;
public void initializeConnection()
{
Customer.initializeConnection(aConnection);
}
public string getNames
{
get { return names; }
set { names = value; }
}
}
}
А вот другой класс:
class Customer
{
static OleDbConnection aConnection = null;
string names;
public static void initializeConnection(OleDbConnection aDbConnection)
{
aConnection = aDbConnection;
aConnection.Open();
getNames();
}
public static void getNames()
{
CustomerDL aCustomer = new CustomerDL();
OleDbDataAdapter myAdapter = new OleDbDataAdapter();
if (aConnection.State == ConnectionState.Closed)
{
aConnection.Open();
}
OleDbCommand cmd = aConnection.CreateCommand();
OleDbDataReader dbReader = null;
cmd.CommandText = "SELECT CustomerName FROM Customer";
dbReader = cmd.ExecuteReader();
while (dbReader.Read())
{
aCustomer.getNames += (string)dbReader["CustomerName"].ToString() + "\r\n";
}
dbReader.Close();
//return aCustomer ;
}
}
Теперь, когда я использую этот код на моей форме:
public partial class Form1 : Form
{
CustomerDL customer = new CustomerDL();
public Form1()
{
InitializeComponent();
customer.initializeConnection();
string fast = customer.getNames;
richTextBox1.Text = fast;
}
customer.getNames; всегда равно нулю. Есть идеи?
Извините, вы могли бы разработать и, возможно, предоставить образец. Я немного запутался. – broke
Думаю, Дэниел говорит о том, что вы создаете новый 'CustomerDL' в' Customer.getNames (...) 'вместо того, чтобы передавать существующий экземпляр в качестве параметра из' CustomerDL.initializeConnection() '. –
@Albin: Я не знаю, что вы подразумеваете под существующим экземпляром. Я все еще немного новичок в этом. – broke