从MsSQL转MySQL错误

本文关键字:错误 MySQL MsSQL | 更新日期: 2023-09-27 18:04:09

我试图在数据库之间传输数据(从MsSQL服务器到MySQL)。源数据库有~2700条记录。当我执行程序时,每400-600个记录VS抛出一个异常:

reader关闭时调用IsDBNull无效。

代码:

foreach (var product in products)
        {
            var prd = product;
            var cmd = connection.CreateCommand();
            cmd.CommandText =
                "INSERT INTO Product(CategoryID, Position, PresentItemID, Guid, ThumbX, ThumbY, " +
                "ImgX, ImgY, Name, Description, IsAvailable, TotalStock, Price, ListPrice, Size, " +
                "meta_tag, desc_tag, page_metatags, FreeDescription, IsVintage, OnSale, Valentine)" +
                "VALUES(@CategoryID, @Position, @PresentItemID, @Guid, @ThumbX, @ThumbY, " +
                "@ImgX, @ImgY, @Name, @Description, @IsAvailable, @TotalStock, @Price, @ListPrice, @Size, " +
                "@meta_tag, @desc_tag, @page_metatags, @FreeDescription, @IsVintage, @OnSale, @Valentine)";
            cmd.Parameters.AddWithValue("@CategoryID", prd.CategoryID);
            cmd.Parameters.AddWithValue("@Position", prd.Position);
            cmd.Parameters.AddWithValue("@PresentItemID", prd.PresentItemID);
            cmd.Parameters.AddWithValue("@Guid", prd.Guid);
            ...
            cmd.Parameters.AddWithValue("@IsVintage", prd.IsVintage);
            cmd.Parameters.AddWithValue("@OnSale", prd.OnSale);
            cmd.Parameters.AddWithValue("@Valentine", prd.Valentine);
            cmd.ExecuteNonQuery();
            progressBar1.PerformStep();
        }

我试着添加这个代码

    List<Product> prd = products.ToList();

和从列表中传输数据,而不是直接从数据库中传输数据,但有相同的错误。

谢谢你的帮助。

从MsSQL转MySQL错误

var cmd = connection.CreateCommand();

您可能需要正确地处置正在创建的对象:

<>之前使用(var cmd = connection.CreateCommand()){cmd。CommandText =…}

为了解决这个问题,我创建了源数据库的备份,并将其安装在具有目标数据库的机器上。然后程序顺利执行。