如何使用 Windows 窗体数据网格更新数据库? (视觉工作室 2010)

发布于 2024-12-11 18:37:42 字数 352 浏览 0 评论 0原文

当我将表从 DataSet 拖到 Windows 窗体上时,默认情况下会创建一个 bindingNavigator 和一个 dataGridView。现在,当我运行该项目时,在 dataGridView 中添加行,在退出之前保存它,然后重新运行该项目,添加的行就在那里,但是当我转到服务器资源管理器查看表数据时,这些行不在那里在数据库中。

在搜索时,我发现 Visual Studio 在 /bin/Debug 文件夹中创建了数据库的副本,并在该数据库副本中执行所有更改。有没有办法确保在项目目录中创建新副本,以便修改旧副本而不是在另一个目录中创建它?或者有其他方法更新原始数据库吗?

ps 将数据库的“复制到输出目录”属性更改为“不复制”并不能解决问题。

When I drag the table from DataSet onto my Windows Form, a bindingNavigator and a dataGridView is created by default. Now when I run the project, add rows in the dataGridView, save it before exiting, and then re-run the project the added rows are there, but when I go to Server Explorer to view the Table Data, those rows aren't there in the Database.

On searching, I found that Visual Studio creates a copy of my database in the /bin/Debug folder, and performs all the changes in that copy of database. Is there a way to ensure that the new copy is created in the Project Directory so that older copy is modified instead of creating it in another directory? Or any other way to update the original Database?

p.s. Changing the 'Copy to Output Directory' property of Database to 'Do not copy' did not solve the problem.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

身边 2024-12-18 18:37:42

您可以使用 SqlAdapter 更新数据库。

// load data
if(ds != null)
        ds.Clear();
adap = new SqlDataAdapter("select id,title, description from testtable", con);
ds = new DataSet();
adap.Fill(ds);
dataGrid1.DataSource = ds.Tables[0];


// perform update
SqlCommandBuilder com = new SqlCommandBuilder(adap);
foreach(DataRow dr in ds.Tables[0].Rows)
        dr["title"] = txtTitle.Text;
adap.Update(ds);

希望这有帮助

You can update your Database using SqlAdapter.

// load data
if(ds != null)
        ds.Clear();
adap = new SqlDataAdapter("select id,title, description from testtable", con);
ds = new DataSet();
adap.Fill(ds);
dataGrid1.DataSource = ds.Tables[0];


// perform update
SqlCommandBuilder com = new SqlCommandBuilder(adap);
foreach(DataRow dr in ds.Tables[0].Rows)
        dr["title"] = txtTitle.Text;
adap.Update(ds);

hope this helps

药祭#氼 2024-12-18 18:37:42

而不是使用绑定。您可以使用应用程序设置。只需写入一个 XML 文件即可!

Instead of using Binding. You could use Application Settings. Just an XML File is written!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文