程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SQlBulkCopy 无法将数据源中 DateTime 类型的给定值转换为指定目标列的 int 类型大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决SQlBulkCopy 无法将数据源中 datetiR_49_11845@e 类型的给定值转换为指定目标列的 int 类型?

开发过程中遇到SQlBulkCopy 无法将数据源中 datetiR_49_11845@e 类型的给定值转换为指定目标列的 int 类型的问题如何解决?下面主要结合日常开发的经验,给出你关于SQlBulkCopy 无法将数据源中 datetiR_49_11845@e 类型的给定值转换为指定目标列的 int 类型的解决方法建议,希望对你解决SQlBulkCopy 无法将数据源中 datetiR_49_11845@e 类型的给定值转换为指定目标列的 int 类型有所启发或帮助;

仔细检查 citytable 中定义的列的顺序是否与数据库表本身中的列顺序匹配。

解决方法

我在尝试执行以下“城市”数据表的 SqlBulkInsert 时收到上述错误代码:

DataTable cityTable = new DataTable(City.TABLE_Name);
cityTable.columns.Add("id",typeof(int));
cityTable.columns.Add("name",typeof(String));
cityTable.columns.Add("ascii_name",typeof(String));
cityTable.columns.Add("alternate_names",typeof(String));
cityTable.columns.Add("latitude",typeof(doublE));
cityTable.columns.Add("longitude",typeof(doublE));
cityTable.columns.Add("feature_class",typeof(char));
cityTable.columns.Add("feature_code",typeof(String));
cityTable.columns.Add("country_code",typeof(String));
cityTable.columns.Add("country_code2",typeof(String));
cityTable.columns.Add("population",typeof(long));
cityTable.columns.Add("elevation",typeof(int));
cityTable.columns.Add("modification_date",typeof(datetiR_49_11845@E));
cityTable.columns.Add("admin1code",typeof(String));
cityTable.columns.Add("admin2code",typeof(String));
cityTable.columns.Add("admin3code",typeof(String));
cityTable.columns.Add("admin4code",typeof(String));
cityTable.columns.Add("gtopo30",typeof(int));
cityTable.columns.Add("timezone_name",typeof(String));
cityTable.columns.Add("version",typeof(Binary));

以下是将每个实体添加到 DataTable 的代码:

object id = EvaluateNullity(parsedCity.Id);
object name = EvaluateNullity(parsedCity.Name);
object asciiName = EvaluateNullity(parsedCity.AsciiName);
object alternatenames = EvaluateNullity(parsedCity.Alternatenames);
object latitude = EvaluateNullity(parsedCity.LatitudE);
object longitude = EvaluateNullity(parsedCity.LongitudE);
object featureClass = EvaluateNullity(parsedCity.FeatureClass);
object featureCode = EvaluateNullity(parsedCity.FeatureCodE);
object countryCode = EvaluateNullity(parsedCity.CountryCodE);
object countryCode2 = EvaluateNullity(parsedCity.CountryCode2);
object population = EvaluateNullity(parsedCity.Population);
object elevation = EvaluateNullity(parsedCity.Elevation);
object modificationDate = EvaluateNullity(parsedCity.ModificationDatE);
object admin1Code = EvaluateNullity(parsedCity.Admin1CodE);
object admin2Code = EvaluateNullity(parsedCity.Admin2CodE);
object admin3Code = EvaluateNullity(parsedCity.Admin3CodE);
object admin4Code = EvaluateNullity(parsedCity.Admin4CodE);
object gtopo30 = EvaluateNullity(parsedCity.Gtopo30);
object timeZonename = EvaluateNullity(parsedCity.TimeZoneName);
object version = EvaluateNullity(parsedCity.Version);

cityRow["id"] = id;
cityRow["name"] = name;
cityRow["ascii_name"] = asciiName;
cityRow["alternate_names"] = alternatenames;
cityRow["latitude"] = latitude;
cityRow["longitude"] = longitude;
cityRow["feature_class"] = featureClass;
cityRow["feature_code"] = featureCode;
cityRow["country_code"] = countryCode;
cityRow["country_code2"] = countryCode2;
cityRow["population"] = population;
cityRow["elevation"] = elevation;
cityRow["modification_date"] = modificationDate;
cityRow["admin1code"] = admin1Code;
cityRow["admin2code"] = admin2Code;
cityRow["admin3code"] = admin3Code;
cityRow["admin4code"] = admin4Code;
cityRow["gtopo30"] = gtopo30;
cityRow["timezone_name"] = timeZonename;
cityRow["version"] = version;

以及 EvaluateNullity 的代码:

    public object EvaluateNullity(object entity)
    {
        return entity ?? DBNull.Value;
    }

对此错误消息的理解是 datetiR_49_11845@e 值被放置在上述 int 列之一中。但是,稍后进行快速条件调试,并在立即窗口中进行检查,结果显示所有 int 列中都没有放置过 datetiR_49_11845@e 类型。

大佬总结

以上是大佬教程为你收集整理的SQlBulkCopy 无法将数据源中 DateTime 类型的给定值转换为指定目标列的 int 类型全部内容,希望文章能够帮你解决SQlBulkCopy 无法将数据源中 DateTime 类型的给定值转换为指定目标列的 int 类型所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。