从另一个Form C调用方法#

问题描述 投票:0回答:4

我试图将数据从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中的数据保存到数据库中。

我认为这将是最好的方法。

有任何想法吗?

c# winforms datagridview
4个回答
2
投票

如果你想使用方法来保存数据,我建议你使用保存方法单独创建类

以下只是示例,您需要这样的东西

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);
}

在表格2类

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

0
投票

在创建Form1的对象时,请尝试此操作。

Form1 f1 = new Form1();

在此之后你不应该得到例外。


0
投票

从这个观点来看,也许尝试使用Form1的一些静态属性?


-1
投票

尝试下一步:

public static void SaveToDB()
    {
        aSH_PROD_ORDERSTableAdapter.Update(aSH_ORDER_DBDataSet1);
    }
© www.soinside.com 2019 - 2024. All rights reserved.