我正在为 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
看起来很有希望。再次感谢这一点。