簡體   English   中英

從MsSQL轉移到MySQL錯誤

[英]Transfer from MsSQL to MySQL error

我試圖在數據庫之間傳輸數據(從MsSQL Server到MySQL)。 源數據庫有約2700條記錄。 當我執行程序時,每400-600條記錄VS都會引發一個異常:

關閉閱讀器時,無效的調用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();

並從列表中傳輸數據,而不是直接從數據庫中傳輸數據,但是存在相同的錯誤。

感謝幫助。

var cmd = connection.CreateCommand();

您可能需要正確處理要創建的對象:

using(var cmd = connection.CreateCommand())
{
    cmd.CommandText = ...
}

為了解決此問題,我創建了源數據庫的備份,並將其安裝在具有目標數據庫的計算機上。 然后程序被執行而沒有任何問題。 仍然不明白為什么這個例外發生在我身上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM