从表中检索所有数据并将其保存回.NET 3.5的最简单方法是什么?

时间:2010-03-16 15:36:59

标签: asp.net database .net-3.5

我有许多表包含一些基本(业务相关)映射数据。 从这些表加载数据的最简单方法是什么,然后保存修改后的值。 (所有数据都应在表格中替换)

ORM是不可能的,因为我想避免为每个表创建域对象。

实际编辑数据不是问题。 (将其导出到Excel中编辑数据,然后使用修改后的数据上载文件)

该技术是.NET 3.5(ASP.NET MVC)和SQL Server 2005。

感谢。

3 个答案:

答案 0 :(得分:3)

SSIS package对你正在做的事情非常有效。

因为无论如何都要在应用程序和Excel电子表格之外完成所有操作,这比在MVC中执行某些操作更容易。

如果你真的想让它“最终用户”友好,那么为他们提供上传文件的方法,将其放到某个地方的文件夹中,并确保你安排File Watcher Task in SSIS

答案 1 :(得分:1)

当您使用SQL Server 2005时,我建议将结果作为XML而不是标准行集返回。 使用FOR XML子句。然后修改此XML并将其应用于SQL Server。 请查看更多details

<强>增加:

关于excel..hm..use dataConnection(用于excel的OLEDB提供程序)打开此xls文件,然后将其转换为XML。 XML适用于SQL Server

答案 2 :(得分:1)

您可以编写一些这样的简单代码。 http://davidhayden.com/blog/dave/archive/2006/03/08/2877.aspx

// Get data in a DataTable
DataTable table = new DataTable();

string northwindConnectionString = "...Northwind...";

using (SqlConnection connection =
    new SqlConnection(northwindConnectionString))
{
    using (SqlCommand command = connection.CreateCommand())
    {
        command.CommandText = "SELECT * FROM Categories";

        connection.Open();
        using (IDataReader dr = command.ExecuteReader
                  (CommandBehavior.CloseConnection))
        {
            table.Load(dr);
        }
    }
}

// Upload DataTable to a Database Table
string destinationConnectionString = "...";

using (SqlBulkCopy copy =
    new SqlBulkCopy(destinationConnectionString))
{
    copy.DestinationTableName = "Categories";
    copy.WriteToServer(table);
}