Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
64位iis 7上的.net 4 sql大容量插入_.net_Iis_Unicode_64 Bit_Sqlbulkcopy - Fatal编程技术网

64位iis 7上的.net 4 sql大容量插入

64位iis 7上的.net 4 sql大容量插入,.net,iis,unicode,64-bit,sqlbulkcopy,.net,Iis,Unicode,64 Bit,Sqlbulkcopy,我需要从txt/csv文件导入asp.net应用程序中的一些批量数据 直到现在我才使用SqlBulkCopy,但现在在64位的iis7上它不起作用。有很多关于jet不使用64位的帖子 我了解到iis可以配置为在32位模式下工作,但我宁愿通过64位保持尽可能好的性能 此外,我从未完全设法使sqlbulkcopy使用扩展属性(如您可能在此处或此处看到的) 所以问题是,有没有另一种/更好的方法通过.net将批量记录导入mssql?可以使用64位并允许自定义unicode和文件类型吗 谢谢大家的帮助 您

我需要从txt/csv文件导入asp.net应用程序中的一些批量数据

直到现在我才使用SqlBulkCopy,但现在在64位的iis7上它不起作用。有很多关于jet不使用64位的帖子

我了解到iis可以配置为在32位模式下工作,但我宁愿通过64位保持尽可能好的性能

此外,我从未完全设法使sqlbulkcopy使用扩展属性(如您可能在此处或此处看到的)

所以问题是,有没有另一种/更好的方法通过.net将批量记录导入mssql?可以使用64位并允许自定义unicode和文件类型吗


谢谢大家的帮助

您可以使用Sql Server集成服务
您可以在SQL Management studio中轻松创建“导入数据”包,并从.net代码调用该包。

您可以获得x64 Jet,但不确定SqlBulkCopy是否支持它


谢谢你们的回答,伙计们

尽管看起来最简单的方法是手动操作。所以我开始自己写一些代码。如果有人对它感兴趣,我会把它贴在这里

它可能不能涵盖所有内容,但它非常灵活

它确实使用了一些我的助手函数之类的,这里没有列出,所以如果您正在阅读本文,并且无法理解某些内容,我很乐意详细说明:-)


你好,非常感谢。与此同时,我收到了这个信息。在SQL Server Express、Web或工作组中,您可以运行导入和导出向导创建的包,但不能保存它。要保存向导创建的包,必须升级到SQL Server Standard、Enterprise、Developer或Evaluation。但我不是在用快递。这是我从网站Spark下载的完整版本。我不确定确切的版本。去哪里查这个?但我确实有sql profiler和其他高级工具,它们不在express中。谢谢,我现在看到了一个叫做“网络版”的东西。这不允许保存这些导入。还有其他想法吗?也许你可以看看文件助手;它们提供csv导入功能。这是一个很好的图书馆。从没听说过这个。非常感谢。我下载了它。它似乎有很多功能,但却是一个非常复杂和陈旧的解决方案。FWIW,我想我现在会尝试为我目前需要的1个文档编写我自己的解析器。但如果我需要更多的功能,我会记住这一点。非常感谢。我懂了。非常感谢。他们在任何地方都提供替代方案吗?我想我会把这架飞机从我的名单上删除,因为它既古老又不受欢迎。问题是,在当今时代,进口的正确方式是什么?
Sub ImportFile(ByVal FilePath As String, ByVal RecordType As ObjectType, Optional ByVal HasHeaders As Boolean = True, Optional ByVal RowDelimiter As String = ControlChars.Tab, Optional ByVal CellDelimiter As String = ControlChars.NewLine)
    Dim objReader = New StreamReader(FilePath)
    Dim strContents = objReader.ReadToEnd
    objReader.Close()
    Dim Columns = New List(Of String)
    Dim axName = ObjectType.Account.GetType.Assembly.FullName
    Dim objRecord = Activator.CreateInstance(axName, RecordType.ToString).Unwrap
    Dim dcx = DBContext()
    dcx.EditLogging = False
    Dim tbl = dcx.GetTable(objRecord.GetType)

    Dim TableColumns = New List(Of String)
    For Each p In objRecord.GetType.GetProperties
        If (p.PropertyType.BaseType IsNot Nothing AndAlso p.PropertyType.BaseType.Name = "ValueType") Or p.PropertyType Is "".GetType Then TableColumns.Add(p.Name)
    Next

    Dim Rows = Split(strContents, RowDelimiter).ToList
    If HasHeaders Then
        Columns = Rows(0).Split(CellDelimiter).ToList
        Rows.RemoveAt(0)
        'check validity
        For Each clm In Columns
            If Not TableColumns.Contains(clm) Then Throw New ApplicationException(clm & " is not a valid column name.")
        Next
    Else
        Columns = TableColumns
    End If
    For Each row In Rows
        objRecord = Activator.CreateInstance(axName, RecordType.ToString).Unwrap
        Dim Cells = row.Split(CellDelimiter)
        For i = 0 To Cells.Count - 1
            SetObjProperty(objRecord, Columns(i), Cells(i))
        Next
        tbl.InsertOnSubmit(objRecord)
    Next
    dcx.SubmitChanges()
End Sub