【发布时间】:2015-01-18 22:06:41
【问题描述】:
我在我的 C# 项目中添加了一个数据源,它只有几列,用户将输入数据并向数据库添加行,并且还能够搜索某些行。我无法保存任何更改。当我按下添加按钮时,更改出现在我的DataGridView 中,但是当我重新启动我的程序(顺便说一句,我构建并导出它,而不是在调试模式下)时,之前的更改不存在。这是为什么呢?
//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;
}
【问题讨论】:
-
您是否有任何异常,或者该方法是否正常完成,而没有更改数据库?
-
一切顺利。行出现在数据网格中,主键是自动添加的,一切。但是当程序再次打开时,没有保存任何更改。
-
@silent 您所描述的问题是,在您重新启动程序后,没有任何内容加载到网格中。您是否真的验证过数据库本身没有发生任何变化?
-
@Rshepp MS SQL 服务器文件我相信。 BartoszKP 我表单中的网格视图会立即看到更改并显示新行,问题是当我关闭程序并再次打开它时,网格不再有更改。所以在第一次运行时,我的网格没有行,我使用这个按钮添加了一对,它会显示添加的行。我关闭程序并再次打开它,我又没有更多的行了。
-
是的,它是本地的。这里没有服务器连接:)。是的,如果是这种情况,我将如何停止这种情况?习惯于编写 50 行 Python 脚本,所以这一切都有些不堪重负;)
标签: c# .net datagridview dataset datasource