读书人

保存datatable到数据库的方法解决办法

发布时间: 2012-04-22 18:34:46 作者: rapoo

保存datatable到数据库的方法
有个datatable是从数据库中查出来的,我的步骤是这样的:

连接数据库,用一个SQL语句从库出查出数据并Fill到这个datatable中,然后跟数据库的连接就断开了

接着我又对这个datatable做了增行,删行或是修改的任意操作

现在的问题就是:我在做完增删改操作后想把这个datatable保存到数据库中,我不想自己手工生成SQL语句,想用SqlDataAdapter的update来更新这个我修改后的datatable到数据库中,有什么好的方法吗?

[解决办法]
建议你看一下MSDN
参考http://www.cnblogs.com/ChangTan/archive/2011/12/27/2303901.html
[解决办法]

C# code
public static SqlDataAdapter AdapterUpdate(string SelectString, DataTable table,string connectionString) { SqlDataAdapter Adapter =new SqlDataAdapter();using (SqlConnection connetion=new SqlConnection(connectionString)) { Adapter.SelectCommand =new SqlCommand(SelectString, connetion);SqlCommandBuilder builder =new SqlCommandBuilder(Adapter);Adapter.UpdateCommand = builder.GetUpdateCommand();Adapter.Update(table); table.AcceptChanges(); return Adapter;} }//调用string  SelectSql="select * from tablename";AdapterUpdate(SelectSql, table,connectionString)//SelectSql为查询语句 connectionString//为数据库连接语句
[解决办法]
探讨

C# code
public static SqlDataAdapter AdapterUpdate(string SelectString, DataTable table,string connectionString)

{

SqlDataAdapter Adapter =new SqlDataAdapter();

using (SqlConnection connetion=n……

[解决办法]
这个头像好眼熟。
SQL语句完全可以在SQL管理工具里面自动创建,然后通过正则过滤为所需形式,写个工具一劳永逸(我写过)。
不要用SqlCommandBuilder,它生成的SQL语句出问题根本看不出原因,不利于分析问题。
[解决办法]
其实使用实体类的话,更加方便,连SQL语句都不用写,当然,设计实体类本身是非常耗时且难度大的(使用现有的ORM框架的除外)
[解决办法]
探讨
C# code
public static SqlDataAdapter AdapterUpdate(string SelectString, DataTable table,string connectionString)

{

SqlDataAdapter Adapter =new SqlDataAdapter();

using (SqlConnection connet……

[解决办法]
SqlCommandBuilder 的update 只能更新一张表 多表更新是不可以 的额
[解决办法]
如果楼主用的是SQL Server数据库,并且DataTable与你需要输入的表有一一对应关系,那楼上的几位都复杂了

参阅MSDN中的SqlBulkCopy

读书人网 >C#

热点推荐