3
我在winform应用程序的工作与MySQL数据库,所以当我跑MySQL工作台数据库脚本显示这条消息GZip标题中的幻数不正确。请确保您传递一个gzip流
我点击“OK'and显示脚本
运行后的脚本并创建数据库,当我跑我的winform应用程序在第一次查询的数据库显示此异常:
var permissions_in_db = db.Permissions
.Where(a => a.Name == s)
.Count();
System.IO.InvalidDataException不受控制:“GZip标头中的幻数不正确。请确保您传递一个gzip流。”
这里的跟踪
System.IO.InvalidDataException not be controlled
HResult = -2146233087
Message = The magic number in GZip header is not correct. Make sure you are passing a GZip stream.
Source = System
StackTrace :
in System.IO.Compression.GZipDecoder.ReadHeader (InputBuffer input)
in System.IO.Compression.Inflater.Decode ()
in System.IO.Compression.Inflater.Inflate (Byte [ ] bytes , Int32 offset , Int32 length)
in System.IO.Compression.DeflateStream.Read (Byte [ ] array , Int32 offset , Int32 count)
in System.IO.Compression.GZipStream.Read (Byte [ ] array , Int32 offset , Int32 count)
in System.Xml.XmlTextReaderImpl.InitStreamInput (baseUri Uri , String baseUriStr , Stream stream , Byte [ ] bytes , Int32 byteCount , Encoding encoding)
in System.Xml.XmlTextReaderImpl.FinishInitStream ()
in System.Xml.XmlReaderSettings.CreateReader (Stream input , baseUri Uri , String baseUriString , XmlParserContext inputContext)
in System.Xml.XmlReader.Create (Stream input , XmlReaderSettings settings , String baseUri)
in System.Xml.Linq.XDocument.Load (Stream stream, LoadOptions options)
in System.Data.Entity.Migrations.Edm.ModelCompressor.Decompress (Byte [ ] bytes)
in System.Data.Entity.Migrations.History.HistoryRepository.GetLastModel (String & migrationId)
in System.Data.Entity.Migrations.History.HistoryRepository.GetLastModel ()
in System.Data.Entity.Internal.InternalContext.QueryForModel ()
in System.Data.Entity.Internal.ModelCompatibilityChecker.CompatibleWithModel (InternalContext internalContext , ModelHashCalculator modelHashCalculator , Boolean throwIfNoMetadata)
in System.Data.Entity.Internal.InternalContext.CompatibleWithModel (Boolean throwIfNoMetadata)
in System.Data.Entity.Database.CompatibleWithModel (Boolean throwIfNoMetadata)
in System.Data.Entity.DropCreateDatabaseIfModelChanges ` 1.InitializeDatabase (tcontext context)
in System.Data.Entity.Database . < > c__DisplayClass2 ` 1. <SetInitializerInternal> b__0 (DbContext c)
in System.Data.Entity.Internal.InternalContext . < > c__DisplayClass8 . <PerformDatabaseInitialization> b__6 ()
in System.Data.Entity.Internal.InternalContext.PerformInitializationAction (Action action)
in System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization ()
in System.Data.Entity.Internal.LazyInternalContext . <InitializeDatabase> b__4 (InternalContext c)
in System.Data.Entity.Internal.RetryAction ` 1.PerformAction (TInput input)
in System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction (Action ` 1 action)
in System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase ()
in System.Data.Entity.Internal.InternalContext.Initialize ()
in System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType (Type entityType)
in System.Data.Entity.Internal.Linq.InternalSet 1.Initialize ` ()
in System.Data.Entity.Internal.Linq.InternalSet 1.get_InternalContext ` ()
in System.Data.Entity.Infrastructure.DbQuery 1.System.Linq.IQueryable.get_Provider ` ()
in System.Linq.Queryable.Where [ TSource ] (IQueryable ` 1 source , Expression ` 1 predicate)
in RoleCreatorV5_net4.Login.button1_Click (Object sender, EventArgs e) in c: \ Users \ Rafa \ Downloads \ 1 \ final versions \ RoleCreatorV5_net4 \ Login.cs : line 30
in System.Windows.Forms.Button.OnMouseUp (MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp (Message & m , MouseButtons button , Int32 clicks)
at System.Windows.Forms.Control.WndProc (Message & m)
in System.Windows.Forms.ButtonBase.WndProc (Message & m)
in System.Windows.Forms.Button.WndProc (Message & m)
in System.Windows.Forms.NativeWindow.DebuggableCallback (IntPtr hWnd , Int32 msg , IntPtr wparam , IntPtr lparam)
in System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW (MSG & msg)
in System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID , Int32 reason , Int32 pvLoopData)
in System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner (Int32 reason , ApplicationContext context)
in System.Windows.Forms.Application.ThreadContext.RunMessageLoop (Int32 reason , ApplicationContext context)
in RoleCreatorV5_net4.Program.Main() in c: \ Users \ Rafa \ Downloads \ 1 \ final versions \ RoleCreatorV5_net4 \ Program.cs : line 70
in System.AppDomain._nExecuteAssembly (RuntimeAssembly assembly, String [ ] args)
in System.Runtime.Hosting.ApplicationActivator.CreateInstance (ActivationContext activationContext , String [ ] activationCustomData)
in Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone ()
in System.Threading.ExecutionContext.RunInternal (ExecutionContext executionContext , ContextCallback callback , Object state , Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run (ExecutionContext executionContext , ContextCallback callback , Object state , Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run (ExecutionContext executionContext , ContextCallback callback , Object state)
in System.Threading.ThreadHelper.ThreadStart ()
InnerException :
下面是从Program.cs的
[STAThread]
static void Main()
{
Database.SetInitializer<MySqlContext>(new DropCreateDatabaseIfModelChanges<MySqlContext>());
var connString = ConfigurationManager.ConnectionStrings["ConnectionStringName"].ToString();
using (var db = new MySqlContext())
{
#region Load CheckedList1
const string f = "/Users/Rafa/Documents/Proyecto NS/SavedList.txt";
List<string> lines = new List<string>();
using (StreamReader r = new StreamReader(f))
{
string line;
while ((line = r.ReadLine()) != null)
{
lines.Add(line);
}
}
foreach (string s in lines)
{
var permissions_in_db = db.Permissions
.Where(a => a.Name == s)
.Count();
if (permissions_in_db < 1)
{
if (s!="")
{
db.Permissions.AddOrUpdate(new Permission
{
Name = s
});
db.SaveChanges();
}
}
}
#endregion
db.SaveChanges();
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Login());
}
}
我真的希望有人能帮助我的代码!
在尝试运行脚本之前,您是否尝试将sql文件的编码更改为兼容版本? – merp
'const string f =“/Downloads/SavedList.txt”;'你的斜杠面向错误的方向 – merp
另外...如果你确实切换了斜杠'\ Downloads \ SavedList.txt'甚至不是有效的路径。 – merp