簡體   English   中英

從另一個Form C#調用方法

[英]Calling method from another Form C#

我正在嘗試將數據從dataGridView保存到具有數據集的數據庫。

在我的主要表格Form1中,我具有以下功能:

public void SaveToDB()
    {
        aSH_PROD_ORDERSTableAdapter.Update(aSH_ORDER_DBDataSet1);
    }

當我在Form1中調用它時,它工作正常。

但是,當我從From2調用它時。

 public void Savestuff()
    {
        form1.SaveToDB();
    }

它得到一個異常的說法:

你調用的對象是空的。

我也有每種形式的這個:

 public partial class Form2 : Form
{
    Form1 form1;

 public partial class Form1 : Form
{
    DateTimePicker oDateTimePicker = new DateTimePicker();
    Form2 resultsForm;

我要做的就是將Form2中dataGridView中的數據保存到數據庫中。

我認為這將是最好的方法。

有任何想法嗎?

如果您想使用保存數據的方法而不是我建議您使用保存方法制作單獨的類

以下僅是示例,您需要這樣的內容

public class DbCrud
{
   public bool SaveData(DateSet ds)
   {
     //create data adapter object with required connection information
     // and just call save here 
      sqlCnn.Open();
      sqlCmd = new SqlCommand(sql, sqlCnn);
      adapter.SelectCommand = sqlCmd;
      adapter.Update(ds);
   }
}

在form1班

private DbCrud dbCrud;
public form1()
{
 dbCrud =new DbCrud();
  dbCrud.SaveData(ds);
}

中二班

private DbCrud dbCrud;
public form2()
{
 dbCrud =new DbCrud();
  dbCrud.SaveData(ds);
}

創建Form1的對象時,請嘗試此操作。

Form1 f1 = new Form1();

在此之后,您不應再遇到異常。

從這個角度來看,也許可以嘗試使用Form1的某些靜態屬性?

嘗試下一步:

public static void SaveToDB()
    {
        aSH_PROD_ORDERSTableAdapter.Update(aSH_ORDER_DBDataSet1);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM