我有一个数据源添加到我的C#项目中,它只有几列,用户将输入数据并向数据库添加行,并且还能够搜索特定的行。我无法保存任何更改。当我按下添加按钮时,我的DataGridView
出现更改,但当我重新启动我的程序时(我构建并以btw方式导出它,而不是在调试模式下),以前的更改不存在。为什么是这样?无法保存对数据集的更改
//called when the new entry button is clicked, adds new row into DB
private void CreatEnrtyBtn_Click(object sender, EventArgs e)
{
//Create new row to construct
BettingDB1DataSet.HorsesRow row = bettingDB1DataSet.Horses.NewHorsesRow();
//Add values to row
row.HorseName = this.HorseNameBox.Text;
row.Trainer = this.TrainerNameBox.Text;
row.Place = this.PlaceBox.Text;
row.Location = this.LocationBox.Text;
row.Jockey = this.JockeyNameBox.Text;
row.Track = this.LocationBox.Text;
row.Ground = "temp";
//Add row to DB and commit changes
bettingDB1DataSet.Horses.AddHorsesRow(row);
//tried both of these on their own, but neither work?
horsesTableAdapter.Update(bettingDB1DataSet.Horses);
horsesTableAdapter.Update(row);
}
如何创建horsesTableAdapter,如要求:
private BettingDB1DataSetTableAdapters.HorsesTableAdapter horsesAdapter;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'bettingDB1DataSet2.Horses' table. You can move, or remove it, as needed.
this.horsesTableAdapter.Fill(this.bettingDB1DataSet2.Horses);
this.dataGridView1.DataSource = bettingDB1DataSet.Horses;
}
您是否遇到任何异常,或者只是正常完成该方法,而不更改数据库? – 2014-11-20 21:30:25
一切顺利。 Row出现在dataGrid中,主键是自动添加的,并包含所有内容。但是当程序再次打开时,没有更改被保存。 – silent 2014-11-20 21:32:54
@silent您正在描述的问题是,重新启动程序后,没有任何内容*被加载到网格中。你是否真的证实了数据库本身没有改变? – BartoszKP 2014-11-20 21:35:37