【发布时间】:2013-08-17 18:59:35
【问题描述】:
是否可以将数据绑定到存储过程,类似于表或视图? (即包括选择、更新、删除、插入)
对于选择,我目前正在使用 ExecuteReader() 执行该过程,将其读入 DataTable,然后将表绑定到网格。但是现在,如何将数据表中的更改写回数据库中呢? .NET 框架中是否有“简单”的内置方法?
【问题讨论】:
标签: c# .net sql-server sql-server-2008 sql-server-2008-r2
是否可以将数据绑定到存储过程,类似于表或视图? (即包括选择、更新、删除、插入)
对于选择,我目前正在使用 ExecuteReader() 执行该过程,将其读入 DataTable,然后将表绑定到网格。但是现在,如何将数据表中的更改写回数据库中呢? .NET 框架中是否有“简单”的内置方法?
【问题讨论】:
标签: c# .net sql-server sql-server-2008 sql-server-2008-r2
不,这是不可能的。存储过程可以使用 T-SQL 代码以任何可能的方式生成返回的结果,并且无法通过调用与用于读取数据的过程相同的过程来创建更新。
一种更现代的数据访问方式是使用 OR-Mapper,例如实体框架。根据您的应用程序类型(将数据发送到客户端然后回发并解释为新对象的 Web 应用程序通常会有点困难),可以进行简单的数据绑定并将更改保存回数据库.
【讨论】:
存储过程无法实现,但SqlCommandBuilder可以实现类似的功能
这是一个完整的示例,描述了如何做到这一点http://support.microsoft.com/kb/307587
【讨论】:
SqlDataAdapter daAuthors = new SqlDataAdapter("Select * From Authors", objConn); 这只是标准数据绑定,我对此一无所知。但是,我只想通过存储过程访问我的数据库。不应直接访问表或视图。