Я пытался заставить это работать некоторое время, но не могу (я довольно плохо знаком с C # и ООП в целом).
По сути, у меня есть этот кусок кода во второй форме:
private void button1_Click(object sender, EventArgs e)
{
if (charCount > 2 && charCount < 30)
{
try
{
conn.Open();
}
catch (Exception ex)
{
//Error handling code here
}
finally
{
conn.Close();
}
//Run the SQL statements
try
{
//SQL insert data is here
}
catch (Exception ie)
{
MessageBox.Show(ie.Message);
}
finally
{
//Close the connection
if (conn.State != ConnectionState.Closed)
{
conn.Close();
}
mainForm.refreshCall();
this.Close();
}
}
else
{
MessageBox.Show("Part numbers can be between 2 and 30 characters.\n Yours was " + charCount + " characters long.", "Error");
}
}
Все работает нормально и выполняет то, что должно: вставлять некоторые данные в базу данных SQL (я взял этот код, чтобы сделать его немного чище). Так что после всего этого я пытаюсь выполнить mainForm.refreshCall()
. Этот метод refreshCall существует в моей первой форме, или mainForm
, и выглядит следующим образом:
public static void refreshCall()
{
SqlConnection conn = new SqlConnection("Data Source=DSERVER\\NEW_SQL;Initial Catalog=AWSoftware;Integrated Security=True");
try
{
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter("SELECT part_num from dbo.CustomParts", conn);
adapter.Fill(ds);
this.listParts.DataSource = ds.Tables[0];
this.listParts.DisplayMember = "part_num";
conn.Close();
}
catch (SqlException odbcEx)
{
MessageBox.Show("There was an error connecting to the data source\nError Code: 1001", "Database Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Однако, this.listParts.DataSource
и this.listParts.DisplayMember
оба говорят мне, что они не являются допустимыми статическими свойствами Ошибка, статический метод или статическое поле инициализируются. Я абсолютно сбит с толку, что это значит. Если бы кто-то был так любезен, чтобы пролить некоторый свет на это для меня, я был бы очень признателен!