0

我正在为 MS SQL Server 数据库开发一个简单的用户客户端(前端)。

数据库本身非常简单,有八个没有任何外键的表。

到目前为止,我设法连接到数据库并将所有表和数据加载到数据集中。我通过使用带有多个 SQL 语句(每个表一个)的单个字符串来做到这一点:

 _dbconstrb = new SqlConnectionStringBuilder();
 _dbconstrb.DataSource = ".\local";
 _dbconstrb.InitialCatalog = "mydatabase";


string sql_str = "SELECT * FROM tbl1; SELECT * FROM tbl2; ..."
_dbda = new SqlDataAdapter(sql_str, _sqlcon);
_dbds = new DataSet();
_dbda.Fill(_dbds);

数据集绑定到 a bindingsource,并将其设置为 a 的数据源DataGridView。我正在使用一个简单ComboBox的 ,用户可以在其中选择八个数据库表之一。每次用户对组合框进行任何更改时,绑定源的数据成员都会设置为组合框中的选定表。到目前为止它工作完美。现在用户将对 gridview 数据进行任何更改(添加、删除或更改记录)。我想使用 SQLCommandBulider 更新数据库,我试过这个:

SqlCommandBuilder cmb = new SqlCommandBuilder(_dbda);
int updated = _dbda.Update(_dbds);

然而,这只适用于第一个表的数据(在 sql-string 中首先出现的表,在本例中是 tbl1)。DataAdapter 似乎无法识别所有跟随的表。我真的必须使用八个 DataAdapter(每个表一个)来实现这一点吗?

解决方案:最后我通过添加八个DataApter. 然而,这种数据处理Entity Framework看起来很有希望。再次感谢这一点。

4

1 回答 1

0

尽管您的应用程序可能很简单,但不确定从所有表中加载数据在性能方面是否是个好主意。我认为使用实体框架会帮助你http://www.asp.net/web-forms/overview/working-with-data-(entity-framework-tutorial) 并且它对于你想要做的事情真的很简单。

于 2013-06-13T08:05:38.503 回答