بسته

عدم نمایش عکس های سایت بعد از ارتقای ناپ کامرس به 4.10

4 سال پیش
#1854 نقل قول
من سایتم را از ناپ کامرس 3.90 به 4.10 ارتقا دادم. الان تمام عکس های سایت بصورت No Image نمایش داده میشه.
0
4 سال پیش
#1857 نقل قول
1. بررسی کنید ببینید اگر جدول PictureBinary در دیتابیس شما وجود دارد.
2. اگر جدول PictureBinary در دیتابیس شما وجود دارد ، مراحل زیر را تا مرحله 3 انجام دهید
1.2  اسکریپت زیر را اجرا کنید:
IF EXISTS (SELECT *  FROM sys.foreign_keys  WHERE object_id = OBJECT_ID(N'FK_PictureBinary_Picture_PictureId') AND parent_object_id = OBJECT_ID(N'PictureBinary'))
    ALTER TABLE [PictureBinary] DROP CONSTRAINT [FK_PictureBinary_Picture_PictureId]
  GO


2.2  تعداد کل رکورهای جدول PictureBinary را بررسی کنید:
select count(*) from PictureBinary

3.2  اگر تعداد رکورد کمی وجود دارد یا هیچ رکوردی در جدول وجود ندارد ، اسکریپت زیر را اجرا کنید:
 --copy existing data
    INSERT INTO [dbo].[PictureBinary](PictureId, BinaryData)
    SELECT [Id], [PictureBinary] FROM [dbo].[Picture]


اگر تعداد رکورد زیادی در جدول Picture دارید ، سپس اسکریپت SQL زیر را اجرا کنید. این از رکوردهای تکراری در جدول جلوگیری می کند:
INSERT INTO [dbo].[PictureBinary](PictureId, BinaryData)
    SELECT top 1 [Id], [PictureBinary] FROM [dbo].[Picture] where Id NOT IN (select PictureId from [PictureBinary])


4.2. تعداد رکوردهای جدول PictureBinary را بررسی کنیدو (این شبیه رکوردهای جدول Picture  خواهد بود)

3.  اگر جدول PictureBinary وجود ندارد. مراحل زیر را انجام دهید:
1.3 جدول را از طریق اسکریپت زیر ایجاد کنید:
CREATE TABLE [dbo].[PictureBinary]
    (
    [Id] int IDENTITY(1,1) NOT NULL,
    [PictureId] int NOT NULL,
    [BinaryData] [varbinary](max) NULL,    
    PRIMARY KEY CLUSTERED
    (
      [Id] ASC
    ) WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON)
  )


2.3 قدم دو را دنبال کنید

4.یکبار که مراحل فوق را انجام دادید محتوای جدول تصاویر به جدول PictureBinary  کپی می شود. حال جدول Picture  را حذف کنید:
ALTER TABLE dbo.Picture  DROP COLUMN [PictureBinary]')  


5. اکنون اسکریپت زیر را اجرا کنید:
IF EXISTS (SELECT *  FROM sys.foreign_keys  WHERE object_id = OBJECT_ID(N'FK_PictureBinary_Picture_PictureId') AND parent_object_id = OBJECT_ID(N'PictureBinary'))
  ALTER TABLE [PictureBinary] DROP CONSTRAINT [FK_PictureBinary_Picture_PictureId]
GO

ALTER TABLE [dbo].[PictureBinary] WITH CHECK ADD CONSTRAINT [FK_PictureBinary_Picture_PictureId] FOREIGN KEY(PictureId)
REFERENCES [dbo].[Picture] ([Id])
ON DELETE CASCADE
GO

1
3 سال پیش
#3468 نقل قول
من این اسکریپت اجرا کردم همچین خطایی بهم داد

پیام کوتاه  
An error occurred while executing the command definition. See the inner exception for details.
همه پیام ها  
System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. ---> System.Data.SqlClient.SqlException: Invalid column name 'PictureBinary'.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.<Reader>b__c(DbCommand t, DbCommandInterceptionContext`1 c)
   at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
   at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand command, DbCommandInterceptionContext interceptionContext)
   at System.Data.Entity.Internal.InterceptableDbCommand.ExecuteDbDataReader(CommandBehavior behavior)
   at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
   --- End of inner exception stack trace ---
   at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
   at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
   at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__6()
   at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
   at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__5()
   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](F
0
طراحی قالب اختصاصی برای ناپ کامرس
3 سال پیش
#3470 نقل قول
عکس های فروشگاه قبلی را از پوشه Content\Images به پوشه wwwroot\Images در فروشگاه جدید کپی کنید.
0
3 سال پیش
#3482 نقل قول
وحدت حمیدی wrote:
1. بررسی کنید ببینید اگر جدول PictureBinary در دیتابیس شما وجود دارد.
2. اگر جدول PictureBinary در دیتابیس شما وجود دارد ، مراحل زیر را تا مرحله 3 انجام دهید
1.2  اسکریپت زیر را اجرا کنید:
IF EXISTS (SELECT *  FROM sys.foreign_keys  WHERE object_id = OBJECT_ID(N'FK_PictureBinary_Picture_PictureId') AND parent_object_id = OBJECT_ID(N'PictureBinary'))
    ALTER TABLE [PictureBinary] DROP CONSTRAINT [FK_PictureBinary_Picture_PictureId]
  GO


2.2  تعداد کل رکورهای جدول PictureBinary را بررسی کنید:
select count(*) from PictureBinary

3.2  اگر تعداد رکورد کمی وجود دارد یا هیچ رکوردی در جدول وجود ندارد ، اسکریپت زیر را اجرا کنید:
 --copy existing data
    INSERT INTO [dbo].[PictureBinary](PictureId, BinaryData)
    SELECT [Id], [PictureBinary] FROM [dbo].[Picture]


اگر تعداد رکورد زیادی در جدول Picture دارید ، سپس اسکریپت SQL زیر را اجرا کنید. این از رکوردهای تکراری در جدول جلوگیری می کند:
INSERT INTO [dbo].[PictureBinary](PictureId, BinaryData)
    SELECT top 1 [Id], [PictureBinary] FROM [dbo].[Picture] where Id NOT IN (select PictureId from [PictureBinary])


4.2. تعداد رکوردهای جدول PictureBinary را بررسی کنیدو (این شبیه رکوردهای جدول Picture  خواهد بود)

3.  اگر جدول PictureBinary وجود ندارد. مراحل زیر را انجام دهید:
1.3 جدول را از طریق اسکریپت زیر ایجاد کنید:
CREATE TABLE [dbo].[PictureBinary]
    (
    [Id] int IDENTITY(1,1) NOT NULL,
    [PictureId] int NOT NULL,
    [BinaryData] [varbinary](max) NULL,    
    PRIMARY KEY CLUSTERED
    (
      [Id] ASC
    ) WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON)
  )


2.3 قدم دو را دنبال کنید

4.یکبار که مراحل فوق را انجام دادید محتوای جدول تصاویر به جدول PictureBinary  کپی می شود. حال جدول Picture  را حذف کنید:
ALTER TABLE dbo.Picture  DROP COLUMN [PictureBinary]')  


5. اکنون اسکریپت زیر را اجرا کنید:
IF EXISTS (SELECT *  FROM sys.foreign_keys  WHERE object_id = OBJECT_ID(N'FK_PictureBinary_Picture_PictureId') AND parent_object_id = OBJECT_ID(N'PictureBinary'))
  ALTER TABLE [PictureBinary] DROP CONSTRAINT [FK_PictureBinary_Picture_PictureId]
GO

ALTER TABLE [dbo].[PictureBinary] WITH CHECK ADD CONSTRAINT [FK_PictureBinary_Picture_PictureId] FOREIGN KEY(PictureId)
REFERENCES [dbo].[Picture] ([Id])
ON DELETE CASCADE
GO

بسیار عالی
من با همین روش مشکلم حل شد
0
دسته بندی ها