我正在尝试使用数据集将数据从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中的数据保存到数据库中。
我觉得这是最好的方法。
任何想法?
答案 0 :(得分: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);
}
答案 1 :(得分:0)
创建Form1的对象时,请尝试此操作。
Form1 f1 = new Form1();
在此之后你不应该得到例外。
答案 2 :(得分:0)
从这个观点来看,也许尝试使用Form1的一些静态属性?
答案 3 :(得分:-1)
尝试下一步:
public static void SaveToDB()
{
aSH_PROD_ORDERSTableAdapter.Update(aSH_ORDER_DBDataSet1);
}