这是我在StackOverflow上的第一篇文章,所以请温柔一点......
我对ADO.NET的对象范围有一些疑问.
当我连接到数据库时,我通常使用这样的代码:
OleDbConnection conn = new OleDbConnection("my_connection_string"); conn.Open(); OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * from Employees", conn); OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter); DataTable dt = new DataTable(); adapter.Fill(dt); conn.Close(); conn.Dispose();
假设我将生成的DataTable绑定到网格控件,并允许我的用户编辑网格内容.现在,当我的用户按下"保存"按钮时,我需要调用此代码:
adapter.Update(dt);
这是我的问题:
1)我是否需要保留最初加载数据表时创建的适配器对象,还是可以在"保存"按钮单击事件中创建另一个适配器对象来执行更新?
2)如果我确实需要保留原始适配器对象,是否还需要保持连接对象可用并打开?
我理解ADO.NET的断开模型 - 我只是在更新数据库时对对象范围感到困惑.如果有人能给我一些关于这个场景的最佳实践的指示,我将不胜感激!
提前致谢...