首页 > 解决方案 > 将文本文件集合导入 SQL Server 表

问题描述

我正在尝试从文本文件中收集数据,以便在 Sql Server 中填充表。集合部分正在工作,但在“ExecuteNonQuery”中,我收到“对象类型 System.Collections.Generic.List 不存在映射”错误。我已经在这里和其他站点研究过这个错误,从我收集到的信息来看,这个错误是由于试图用一个数组填充一个表或者我的参数有问题引起的。我已经尝试对填充表格的代码进行各种调整。没有触摸收集代码,因为我讨厌修复未损坏的内容。这是我的代码:

var mbrNbr = new List<string>();
var sPages = new List<int>();
var ePages = new List<int>();
var startPage = 0;
var endPage = 0;
using (var sr = new StreamReader(@"\\path\textFile.txt"))
{
    while (sr.Peek() > 0)
    {
        var line = sr.ReadLine();
        var memberNumber = line.Substring(698,11);
        var passThru = line.Substring(698,11);
        var oceMax = Convert.ToInt32(line.Substring(910, 3));
        if (passThru.Equals(memberNumber))
        {
            mbrNbr.Add(memberNumber);
            startPage = endPage + 1;
            endPage += oceMax * 2;
            ePages.Add(endPage);
            sPages.Add(startPage);

        }
    }
}

var sqlConn = new SqlConnection("server/db conneciton");
sqlConn.Open();

var updateSql = @"update myTable
                set MemberNbr = @memberNumber,
                StartPage = @startPage, EndPage = @endPage";

using (SqlCommand cmd = new SqlCommand(updateSql, sqlConn))
{
    cmd.CommandTimeout = 6000;
    cmd.Parameters.AddWithValue("@memberNumber", mbrNbr);
    cmd.Parameters.AddWithValue("@startPage", sPages);
    cmd.Parameters.AddWithValue("@endPage", ePages);
    cmd.ExecuteNonQuery();
}

sqlConn.Close();

为了构建一个特定的问题,这里是:SQL Server 不接受数组还是参数问题还是两者兼而有之?

标签: c#sql-server

解决方案


推荐阅读