Thursday, 25 December 2014

Khi bạn thao tác attach một database vào trong trình quản lý SQL manager studio thì hay xuất hiện lỗi: unable to open the physical file operating system error 5 5(access is denied.).
Nguyên nhân lỗi:
Thường là do quyền truy cập của bạn chưa đủ để được phép attach database.
Cách khắc phục:
Chạy SQL Manager Studio với quyền administrator thì bạn được toàn quyền thao tác với database.

Wednesday, 24 December 2014

Bảng dữ liệu (table) là đối tượng cơ bản và là đặc trưng nhất của SQL, dùng để lưu trữ dữ liệu các thông tin đối tượng trong hệ thống quản lý dữ liệu.
Một bảng sẽ có một hoặc nhiều cột( column), một cột là một trường giá trị với các kiểu giá trị được quy định sẵn. Mỗi bảng đều có một hoặc nhiều trường làm khóa (key), khóa của bảng dùng để định danh, phân biệt giữa các bản ghi trong bảng, các bản ghi khác nhau thì khóa sẽ khác nhau.
Các bảng sẽ được liên kết với nhau thông qua khóa ngoại( foreign key).
Ví dụ:
Cột IDType của bảng DNN_Product là khóa ngoại, giá trị của nó được lấy từ bảng DNN_Type
Video hướng dẫn tạo bảng, diagram và khóa ngoại:
Video hướng dẫn cho các bạn cách thao tác bằng giao diện, bên cạnh đó chúng ta có thể thao tác tương tự bằng lệnh
Tạo bảng:
cskt.net
create table Tên_Bảng(
[Cột_1] [Kiểu dữ liệu] not null primary key (nếu cột này làm khóa),
[Cột_2] [Kiểu dữ liệu],
[Cột_3] [Kiểu dữ liệu],
...
)

hoặc
cskt.net
create table Tên_Bảng(
[Cột_1] [Kiểu dữ liệu] not null,
[Cột_2] [Kiểu dữ liệu],
[Cột_3] [Kiểu dữ liệu],
...
primary key (Cột_1)
)

nếu nhiều cột cùng làm khóa:
cskt.net
create table Tên_Bảng(
[Cột_1] [Kiểu dữ liệu] not null,
[Cột_2] [Kiểu dữ liệu],
[Cột_3] [Kiểu dữ liệu],
...
constraint [Tên_mối_quan_hệ_khóa] primary key (Cột_1, Cột_2)
)

nếu các bạn tạo bảng mà quên chưa thiết lập khóa ngoại thì dùng:
cskt.net
ALTER TABLE Tên_Bảng ADD PRIMARY KEY (Cột_1)

hoặc
cskt.net
ALTER TABLE Tên_Bảng ADD CONSTRAINT [Tên_mối_quan_hệ_khóa] PRIMARY KEY (Cột_1Cột_2)

ví dụ:
CREATE TABLE [dbo].[DNN_Product](
[IDProduct] [int] NOT NULL PRIMARY KEY,
[Name] [nvarchar](50) NULL,
[IDType] [int] NOT NULL,
)

Tạo khóa ngoại:
cskt.net
create table Tên_Bảng(
[Cột_1] [Kiểu dữ liệu] not null primary key (nếu cột này làm khóa),
[Cột_2] [Kiểu dữ liệu],
[Cột_3] [Kiểu dữ liệu],
...
FOREIGN KEY (Cột_3) REFERENCES [Tên_Bảng_Chứa_Khóa_Ngoại] (Cột_3) hoặc CONSTRAINT [Tên_mối_quan_hệ_khóa] FOREIGN KEY (Cột_3) REFERENCES [Tên_Bảng_Chứa_Khóa_Ngoại] (Cột_3)
)
Khi đã tạo bảng mà bạn quên chưa tạo khóa ngoại thì dùng:
cskt.net
ALTER TABLE [Tên_Bảng_Chính] ADD FOREIGN KEY (Cột_3) REFERENCES [Tên_Bảng_Chứa_Khóa_Ngoại](Cột_3)
hoặc
ALTER TABLE [Tên_Bảng_Chính] ADD CONSTRAINT [Tên_mối_quan_hệ_khóa] FOREIGN KEY (Cột_3) REFERENCES [Tên_Bảng_Chứa_Khóa_Ngoại] (Cột_3)

Khi bạn muốn xóa một mối quan hệ khóa ngoại thì có thể dùng:
cskt.net
ALTER TABLE  [Tên_Bảng_Chính] DROP FOREIGN KEY [Tên_mối_quan_hệ_khóa] 
Khi bạn muốn xóa khóa chính:
cskt.net
ALTER TABLE [Tên_Bảng_Chính] DROP PRIMARY KEY
hoặc ALTER TABLE [Tên_Bảng_Chính] DROP CONSTRAINT [Tên_mối_quan_hệ_khóa] 
Các bạn có thể tải code tại đây:

Tuesday, 23 December 2014

Bạn đang học lập trình web, đang xây dựng một website nhưng chưa biết bắt đầu từ đâu thì Dotnetnuke là một lựa chọn đáng được bạn quan tâm.


Việc tạo 1 website với ASP sẽ trở nên đơn giản hơn với Dotnetnuke, trong Dotnetnuke tích hợp một trình quản lý chuyên nghiệp và dễ sử dụng.
Các bạn có thể tùy biến và xây dựng giao diện đơn giản, phát triển các module cho riêng mình, quản lý và phân quyền người dùng thông minh...
Trong video này mình sẽ hướng dẫn các bạn cách cài đặt và cấu hình Dotnetnuke để chạy được, cách kết nối với database: 
Mọi thắc mắc xin vui lòng để comment phía dưới, mình sẽ hỗ trợ các bạn trong thời gian nhanh nhất.
Chúc các bạn thành công!

Monday, 22 December 2014

Việc tạo người dùng và cấu hình quyền truy cập cho người dùng đó là vô cùng cần thiết cho ứng dụng của bạn. Với việc cấu hình người dùng như vậy, chúng ta có thể giám sát được, người dùng nào có thể thao tác như thế nào với database nào.
Với video này, mình sẽ hướng dẫn chi tiết cho các bạn cách tạo và cấu hình cho 1 người dùng truy xuất database.
Các điểm cần lưu ý:
- Để tạo user các bạn có thể sử dụng search để kiểm tra và thêm người dùng vào.
- Sử dụng user mapping để cấu hình quyền truy cập.
- Bật chế độ SQL authentication để người dùng có thể truy cập với chế độ đăng nhập từ xa.
Chúc các bạn thành công!

Tuesday, 16 December 2014

Các ứng dụng bạn viết bằng java có thể sẽ không chạy hoặc báo lỗi, nguyên nhân có thể là do bạn chưa thiết lập môi trường chạy Java cho bộ JDK của mình.

Các thuật ngữ bạn hay gặp:
JRE: viết tắt của từ Java Runtime Environment – Môi trường chạy Java. Phiên bản JRE chỉ thích hợp cho người sử dụng.
- JRE là môi trường để chạy được các ứng dụng Java.
- JRE giúp một người dùng bình thường (không cần phải là lập trình viên) chạy một ứng dụng Java mà không cần cài đặt một bộ JDK cồng kềnh thường dành cho lập trình viên.
- JRE bao gồm một số công cụ quan trọng để chạy được một ứng dụng Java.
JDK: được viết tắt của từ Java Development Kit tức là bộ phát triển Java.
- Khi cài đặt JDK thì bạn không cần quan tâm đến JRE nữa bởi vì JDK đã tích hợp luôn cả JRE để cho các bạn có thể kiểm tra ứng dụng.
- JDK giúp các nhà phát triển dịch mã nguồn ra java byte code để chương trình java nạp vào máy ảo và chạy với lệnh trong command promt: javac -java compiler – công cụ dịch mã nguồn *.java.
Dưới
1. Cài đặt JDK:
Link tải về: tại đây


Sau khi tải về tiến hành cài đặt:
 Click next
  Click next
Đợi 1 lúc
Bước này dùng để tạo đường dẫn lưu trữ -> click next -> close để hoàn tất quá trình.
2. Cài đặt môi trường:
 Click vào properties
 Click Advanced system
 Chọn tab Advanced -> click Environment...
 Click edit phần Path
Copy và paste vào, nhớ thêm \bin\ và dấu ;
Ví dụ: C:\Program Files\Java\jdk1.7.0_17\bin\
Như vậy là các bạn đã cài đặt xong môi trường lập trình Java.
Các bạn có thể cài thêm các trình soạn thảo như eclipse, JI,Mono để lập trình.
" Write once, run anywhere " là tôn chỉ của Java. Java bắt đầu phát triển mạnh trong thời gian gần đây với việc hàng loạt các loại Smart phone ra đời trên nền tảng Android đã kích thích Java ngày càng phát triển nhanh và mạnh hơn.
Android - một nền tảng hệ điều hành mã nguồn mở vô cùng phổ biến cho thế hệ điện thoại thông minh hiện nay. Với giao diện đơn giản, dễ sử dụng và phát triển thì android đang là lựa chọn số một cho các nhà phát triển di động.

Trong bài viết hôm nay, mình sẽ hướng dẫn các bạn cách cài đặt bộ công cụ JDK và SDK.
1. Cài đặt JDK:
Link tải về: tại đây


Sau khi tải về tiến hành cài đặt:
 Click next
  Click next
Đợi 1 lúc
Bước này dùng để tạo đường dẫn lưu trữ -> click next -> close để hoàn tất quá trình.
Nếu các bạn chưa thiết lập môi trường lập trình Java thì xem bài:
2. Cài đặt SDK:
Link tải về: tại đây
Sau khi các bạn tải về thì chúng ta tiến hành giải nén.
Sau khi giải nén các bạn được 2 thư mục và 1 file SDK manager
Mở file SDK Manager
Các bạn check chọn tools và platform muốn cài đặt, bản mới nhất hiện nay là Android 5.0.1.
Các bạn đợi 1 lát để SDK manager tải các plugins về. Khi xuất hiện "done" tức là quá trình thành công!
Trong bài sau mình sẽ hướng dẫn các bạn tạo môi trường giả lập ADV để chạy ứng dụng android và tạo 1 project đơn giản bằng eclipse.
Chúc các bạn cài đặt thành công.

Tuesday, 2 December 2014

Lỗi gõ lệnh trong SQL: "The ntext data type cannot be selected as DISTINCT because it is not comparable."
Lỗi này xuất hiện khi bạn sử dụng lệnh DISTINCT, lệnh này có tác dụng lọc bỏ các bản ghi có chung giá trị trong cột chỉ định
Ví dụ: select distinct MaKhachHang from KhachHang
Lấy danh sách MaKhachHang đồng thời lược bỏ các MaKhachHang  trùng nhau
Nguyên nhân của lỗi trên là do:
- Kiểu dữ liệu đưa vào không hợp lệ: distinct không lược bỏ các cột có kiểu dữ liệu ntext
- Có thể bạn sử dụng lệnh * trong select và trong danh sách các cột được lấy có 1 cột có kiểu là ntext:
Ví dụ: select distinct kh.MaKhachHang, kh.* from KhachHang kh
Bạn đang muốn lấy tất cả các thông tin của KhachHang và muốn lọc MaKhachHang trùng và dùng câu lệnh như trên thì SQL sẽ báo lỗi.
Cách khắc phục:
- Chuyển kiểu dữ liệu đưa vào về nvarchar hay nchar:
Ví dụ: select distinct cast( kh.MaKhachHang as nvarchar(10)) from KhachHang kh
- Hạn chế dùng lệnh *, khai báo các rõ các cột muốn lấy giá trị.
Chúc các bạn fix lệnh thành công!
Từ khóa, vòng lặp, mệnh đề điều kiện là các thành phần cơ bản trong lập trình.
Với video này mình sẽ nói rõ hơn cho các bạn về cách sữ dụng các từ khóa, vòng lặp và mệnh đề điều kiện
Video hướng dẫn chi tiết:
smallimagecskthttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsHTbIj2yc_dHiZJw8VRXwidIHD9JbZA7kCioKjaM2IGY09v61_N_i81U8eaX-uB5Sksnrs4vtTJ67N-bsy2qiXkT9n2Ttr0QVyNpYxpqtbgPm0jVq74uKOtPifxfCRdQl5b4z_t5xkEQn/
bigimagecskthttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHHkyt9gJg22CRgRPwQtDAGNzi_X1j0CnEfvgsnG0ki9uoPZe9TFGOXLb1woldS7r5yQ1AkmEG_Ym0Ar0QNYnaI0UpyhANmyVtRaBL9hnPt7gGBSfD7_Vbzl7zDsoI2H_r4OJURt1pi-I_/

Tải code demo:
Bạn rất thích nghe nhạc và xem phim, bạn muốn có 1 ứng dụng riêng cho mình thì bài viết này có thể giúp ích cho bạn làm điều đó.
Việc tạo 1 trình nghe nhạc không còn khó khăn với bạn qua việc sử dụng thư viện  wmp.dll. Thư viện này hỗ trợ cho bạn các chức năng phát 1 bài hát, tạm dừng và dừng hẳn bài hát.
Với video này, mình sẽ hướng dẫn các bạn tạo 1 list nhạc và nghe các bài hát trong danh sách nhạc đó.
Video hướng dẫn chi tiết:
smallimagecskthttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiArXRsbtX6rxCfv8dppDBwU0hNFkUvhVE0zRwiM3Cz8UYcB__39AKmBdIaevFNXubsbx74-7RCeXw0vJcSldBV6c8_oOdLBYlEJXAiIYJOJQzY9N3CLBkfoevFWq-8iHEMywZALbeusIFT/
bigimagecskthttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIjYdPQj1yKKSWtOSsvHf6uXcKw24jhdKXoruhIAeXVCHewkzreOr38-gEu91yaGqZvSM5Iqdrv-njxBMXJMQOYYWBVabkmR1ficCi4EOFLk3lZlWpRwV-CBtVEEgliZ6y94QBE_RAlXDC/

Tải code demo:
Việc tạo các bảng dữ liệu trong SQL là việc làm cơ bản của các lập trình viên trong quá trình đi xây dựng các ứng dụng quản lý dữ liệu.
Các bảng dữ liệu được liên kết với nhau bằng các khóa, các bản ghi trong cùng 1 bản được phân biệt với nhau cũng bằng các khóa.
Vì vậy, với video này mình sẽ hướng dẫn các bạn việc sinh mã tự động cho các khóa trong SQL theo quy luật mà mình đã định trước.
Trước tiên mình sẽ hướng dẫn các bạn cách tạo mã tự động với việc tăng chỉ số đơn giản, các video tiếp theo mình sẽ hướng dẫn các bạn cách tạo mã phức tạp hơn.
Video hướng dẫn chi tiết:
smallimagecskthttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh15mKl2mr8Dk0xd1POvzu-NvhxhNoObAwCFn9DDtFwW2xOb60ix8aB9ZC58TuBIW0pZGcd6y6xg9Z34ZEoYc_BGcY00K3TSTyxepcUa01d7U-asLmQYjBqz83RFENVYgrI7hFzETc3Le8I/
bigimagecskthttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt8Iko9Ix8s1HYHfHFbZXWDizzn1ZQW_7xJNhr6NFyzsMA9BBCm1FoadqavuFeFQOtM7WfLI7_ZJWSqyHkiPkHwIIaGInnj5DIMWI-lAC7cGvRV8ZiErvukcwDU9jlro03aLMfQqEPFB8S/
Có rất nhiều các phương pháp để người dùng đặt mật khẩu bảo vệ thư mục trên Windows, và phần lớn đều nhờ đến sự giúp sức của các phần mềm. Tuy nhiên, nếu thích bạn vẫn có thể tự đặt mật khẩu cho thư mục mình cần bằng tay không mà không cần đến sự trợ giúp của phần mềm.

Nếu quan tâm, bạn có thể tham khảo hướng dẫn sau
Đầu tiên, hãy tạo một thư mục nào đó để đặt các tập tin cần khóa vào bên trong. Nếu đã tạo sẳn, bạn có thể bỏ qua bước này.


Sau khi tạo xong thư mục, hãy mở nó ra. Nhấn phải chuột và chọn New > Text Document.

Mở tập tin mới tạo ra và dán vào đoạn mã sau, nhưng hãy thay đổi giá trị PASSWORD_GOES_HERE thành mật khẩu mà muốn đặt.
cls
@ECHO OFF
title Folder Private
if EXIST "Genk Locker" goto UNLOCK
if NOT EXIST Private goto MDLOCKER
:CONFIRM
echo Are you sure you want to lock the folder(Y/N)
set/p "cho=>"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Invalid choice.
goto CONFIRM
:LOCK
ren Private "Genk Locker"
attrib +h +s "Genk Locker"
echo Folder locked
goto End
:UNLOCK
echo Enter password to unlock folder
set/p "pass=>"
if NOT %pass%== PASSWORD_GOES_HERE goto FAIL
attrib -h -s "Genk Locker"
ren "Genk Locker" Private
echo Folder Unlocked successfully
goto End
:FAIL
echo Invalid password
goto end
:MDLOCKER
md Private
echo Private created successfully
goto End
:End


Sau đó lưu lại với tên và định dạng là “locker.bat”

Bây giờ bạn có thể xóa tập tin TXT mà mình đã tạo lúc này và sau đó nhấn đôi chuột vào tập tin locker.bat để nó hoạt động. Khi đó một thư mục mới có tên “Private” sẽ xuất hiện.
Tự tạo mật khẩu bảo vệ thư mục mà không dùng đến phần mềm

Bạn hãy tiến hành di chuyển các dữ liệu cần bảo mật vào thư mục Private, sau khi đã hoàn tất, hãy nhấn đôi chuột vào tập tin locker.bat. Ngay lập tức một hộp thoại dòng lệnh sẽ xuất hiện với nội dung hỏi bạn có đồng ý cho việc ẩn thư mục này không, hãy nhập “Y” và nhấn ENTER

Sau khi thực hiện, thư mục Private sẽ biến mất. Khi muốn truy cập vào thư mục Private, bạn hãy nhấn đôi chuột vào tập tin locker.bat và tiến hành nhập mật khẩu đã đặt trong cửa sổ dòng lệnh và nhấn ENTER.

Nếu cần, bạn có thể ẩn luôn tập tin locker.bat bằng cách đánh dấu vào lựa chọn Hidden trong cửa sổ Properties của nó.


Và khi cần đổi mật khẩu, hãy nhấn phải chuột vào tập tin locker.bat, chọn Edit và tiến hành thay đổi mật khẩu là xong.
Khá đơn giản phải không? Hi vọng bài viết sẽ có ích cho bạn.
<Nguồn: genk.vn>
Khi công nghệ ngày càng hiện đại thì việc sở hữu 1 chiếc smartphone hoặc máy ảnh có số chấm cao trên 8 Mpx đã trở thành phổ biến. Khi chụp hình bằng các công cụ này thì dung lượng ảnh thường khá lớn, size ảnh rộng. Việc up ảnh lên các mạng xã hội facebook, google... sẽ gây có khăn hơn.
Có 1 cách rất đơn giản để resize cắt ghép giảm dung lượng ảnh bằng paint của win 7 8 XP mà không cài thêm bất kỳ phần mềm nào khác như: photoshop, Paint.net... Các bạn có thể làm theo hướng dẫn sau
Trước tiên click chuột phải vào hình ảnh bạn muốn resize, giảm dung lượng ảnh chọn Edit

Khi đó ảnh sẽ được mở với phần mềm Paint có sẵn trong win 7 8 XP
Tai đây các bạn có thể có nhiều lựa chọn
Chọn vào Resize sau đó tuỳ dung lượng kích cỡ ảnh hiện tại và kích cỡ ảnh bạn muốn có mà chọn số phần trăm ảnh. Sau đó nhấn OK. Bạn có thể chọn Resize theo Pixels để cắt chỉnh xác số pixel bạn muốn có
Khi đó ảnh của bạn sẽ được thu nhỏ đúng theo số % mà bạn muốn giảm.
Tuy nhiên nếu ảnh đó vẫn còn to hoặc bạn chỉ cần cắt 1 chi tiết ảnh thì chọn công cụ Select như hình dưới -> Chọn vùng muốn cắt -> Click chuột phải chọn Crop để cắt ảnh

Sau đó click vào File -> save lại, bạn sẽ có được bực ảnh được resize và giảm dung lượng nhiều khi up lên facebook.

Nguồn: vforum.vn
Nếu bạn đang sử dụng phiên bản Microsoft Word 2003 trở lên thì có một tính năng bảo mật văn bản rất hay mang tên Protect Document, với tính năng này bạn có thể an tâm giao văn bản cho người khác mà không sợ họ chỉnh sửa, thay đổi cả văn bản hoặc từng đoạn văn bản do bạn chỉ định.

Để kích hoạt chức năng này, bạn hãy nhấn vào Menu Tool > Protect Document. Giao diện làm việc chính của chương trình sẽ được xuất hiện ở phía bên tay phải cửa sổ làm việc của bạn.
Tại đây nếu đơn thuần bạn chỉ muốn đoạn văn bản của mình được bảo vệ mà không ai có quyền thay đổi các thông số bên trong văn bản của mình như (Font chữ, định dạng, thiết kế,....) thì bạn chỉ việc đánh dấu kiểm vào trước tuỳ mục Limit formatting to a selection of styles, sau đó nhấn vào tuỳ chọn Yes, Start Enforcing Protection rồi nhập mật khẩu để khoá các định dạng văn bản này vào.

Ngoài tính năng trên, nó còn có một chức năng khá hay khoá từng đoạn hoặc không cho thay đổi hoặc thêm bớt bất kỳ thứ gì trong văn bản. Các tính năng này được phân cấp mở rộng trong tuỳ mục Editing restriction. Chúng bao gồm:
1. Tracked changes: hiển thị riêng biệt những đoạn văn bản bảo mật và những đoạn văn bản mà người khác thêm vào (các đoạn văn bản thêm vào sẽ được phân tách mà hiển thị kiểu chữ màu đỏ).
2. Comments: không cho phép bạn thêm bớt hoặc chỉnh sửa bất cứ thứ gì trong văn bản, bạn chỉ có quyền thêm vào tạo các đoạn ghi chú (comments) mà thôi.
3. Filling in forms: không được thêm bớt và các định dạng trong văn bản, bạn chỉ có thể thay đổi các biểu mẫu có trong văn bản.
4. No changes: văn bản của bạn chỉ có quyền được xem mà không thể làm được gì, tất cả các lệnh trong Word đều bị khoá bỏ.
Khi đã chọn xong, bạn hãy nhấn vào tuỳ chọn Yes, Start Enforcing Protection rồi nhập mật khẩu để bảo vệ văn bản của bạn vào. Từ lúc này văn bản của bạn đã thực sự "an toàn" rồi đấy.
Khi nào muốn trở lại "hiện trạng làm việc ban đầu" cho các văn bản đã khoá, bạn hãy mở văn bản bị khoá lên rồi truy xuất vào menu Tools > Unprotect Document. Sau đó nhập mật khẩu để giải mã vào.

Ngoài ra còn có thể tham khảo thêm những cách sau:

Bảo vệ nội dung file văn bản
Sau khi soạn thảo xong một file trong Word, bạn có thể bảo vệ file này không cho người khác sửa đổi hay mở xem bằng các cách sau đây:

Chống sửa đổi:

Mở văn bản cần thực hiện, bấm menu Tools > Protect document. Ở cửa sổ hiện ra, có ba lựa chọn ứng với ba cấp bảo vệ từ thấp đến cao.

- Chọn Tracked Changes nếu muốn lưu lại những gì khi chỉnh sửa. Trong cấp bảo vệ này, Word sẽ đánh dấu những đoạn chỉnh sửa bằng màu đỏ.

- Chọn Comments nếu không muốn người xem xóa, sửa nội dung. Ở cấp bảo vệ này, người xem vẫn có thể sao chép được nội dung văn bản.

- Muốn bảo vệ tuyệt đối nội dung văn bản, bạn hãy bấm chọn Form, khi đó Word sẽ khóa tất cả các chức năng sửa đổi sao chép, lúc đó văn bản có thuộc tính như một file pdf.

Sau khi chọn xong cấp độ bảo vệ, nhập password vào ô trống bên dưới, bấm OK. Để gỡ bỏ bảo vệ, bấm menu Tools > Unprotect document, nhập password khi có yêu cầu.

Ngoài ra, bạn cũng có thể đặt thuộc tính Read Only cho file văn bản nhằm chống lại việc lưu hay cập nhật nội dung file. Bạn thực hiện việc này bằng cách: ở cửa sổ Windows Explorer, bấm chuột phải lên file cần thực hiện rồi chọn properties, bấm thẻ General ở cửa sổ hiện ra, đánh dấu chọn mục Read-only.

Không cho mở file:

Ở hình thức bảo vệ trên, người xem vẫn có thể mở được file nhưng không chỉnh sửa được file. Còn ở hình thức này chúng ta sẽ đặt password để ngăn chặn việc mở file.

Mở văn bản cần thực hiện, bấm menu Tool > Options, bấm thẻ Security, nhập password vào ô Password to Open, bấm OK rồi thực hiện lưu file. Hoặc cũng có thể thực hiện theo cách: bấm menu File > Save As (hoặc bấm phím F12), bấm nút Tools, chọn Security Options, nhập password vào ô Password to Open, bấm OK

Một khi file đã được bảo vệ bằng cách này, cần phải nhập đúng password ở thông báo hiện ra thì mới mở được file. Để gỡ bỏ password, làm lại thác tác như khi cài đặt password nhưng xóa tất cả các dấu * có trong ô Password to Open.

(Theo LBVMVT).
An exception occurred during a webclient request đây là lỗi xuất hiện khi bạn dùng phương thức download của WebClient mà trong khi đó file download về gặp vấn đề.
Nguyên nhân:
- File tải về không thể thực hiện việc lưu hay ghi trên thư mục mà bạn chọn.
- Có thể thư mục bạn chọn được phân quyền và quyền truy cập của bạn bị hạn chế.
- File tải về đã tồn tại hoặc trùng tên và file này đang được sử dụng bởi 1 chương trình khác.
Cách khắc phục:
- Phân quyền truy cập cho người dùng có thể write thư mục:
Click chuột phải chọn properties -> security -> edit tên người dùng và chọn allow write



- Nếu cách trên của bạn vẫn chưa khắc phục được thì hãy kiểm tra code:
Đoạn code demo:
string saveLocation = "Đường dẫn lưu file";
string url = "Đường dẫn tải file";
 if (File.Exists(saveLocation)) File.Delete(saveLocation);
     WebClient webClient = new WebClient();
     webClient.DownloadFile(url, saveLocation);
      webClient.Dispose();
Nhớ kiểm tra xem có chương trình nào đang sử dụng file trong đường dẫn không, nếu có thì tắt nó đi rồi tiếp tục thực hiện đoạn lệnh trên.
Chúc các bạn thành công!