public void Close()
        {
            if (State != ConnectionState.Closed)
            {
                var retVal = UnsafeNativeMethods.Close(NativeConnection);
                if (retVal != UnsafeNativeMethods.ResultCode.OK)
                {
                    throw new SqliteException(GetError(NativeConnection) + " - " + retVal);
                }
            }

            State            = ConnectionState.Closed;
            NativeConnection = IntPtr.Zero;
        }
        public static void CreateFile(string databaseFileName)
        {
            var dirName = Path.GetDirectoryName(databaseFileName);

            if (string.IsNullOrEmpty(dirName) == false && Directory.Exists(dirName) == false)
            {
                Directory.CreateDirectory(dirName);
            }

            IntPtr conn;
            var    retVal = UnsafeNativeMethods.Open(databaseFileName, out conn, UnsafeNativeMethods.OpenFlags.ReadWrite | UnsafeNativeMethods.OpenFlags.Create, null);

            if (retVal != UnsafeNativeMethods.ResultCode.OK)
            {
                throw new SqliteException(GetError(conn) + " - " + retVal);
            }
            UnsafeNativeMethods.Close(conn);
        }