Xử lý lỗi thường gặp trên Windows

CÁC TRƯỜNG HỢP LỖI MÁY IN

1. Chưa bật máy in hoặc cổng kết nối máy in và máy tính bị lỏng

- Cách xử lý: Bật máy in -> Đổi cổng kết nối máy in với máy tính -> Khởi động máy tinh

loikhongketnoimayin

2. Lỗi có thể giải quyết bằng nút [Resolve Error]

loiMayin1

CẢNH BÁO SMARTSCREEEN TRÊN WINDOWS 10

Bấm vào dòng chữ "More info", tiếp tục bấm vào hiện ra nút "Run anyway..." bên dưới.

runAnyway

 

CẬP NHẬT PHẦN MỀM 

hd updatephanmem

 

Hướng dẫn xây dựng chức năng tự động cập nhật phần mềm bằng ClickOnce với Visual Studio 2012

Click phải chuột vào Project cần Publish rồi chọn Properties

hinh1

 

Chọn tab Build -> chọn Platform để Publish (Any CPU, x86, x64)

hinh2

 

Chọn tab Signing -> tạo Cerificatehinh3

 

Chọn tab Security -> Cấp quyền truy cập, bảo mật

hinh4

 

Chọn tab Publish

hinh5Publishing Folder Location: Chọn vị trí để lưu file chương trình khi Publish. Bước này nên chọn vị trí trên máy local để lấy file cài đặt dễ dàng.

  • The application is available offline as well: cho phép cài đặt ứng dụng khi không có internet và sau khi cài đặt sẽ có shortcut ở Start menu.
  • Cấu hình và chọn các dữ liệu đi kèm khi sau publish:
    • Application Files: tùy chọn file đi kèm để xuất thành file cài đặt exe. Đối với các file cấu hình riêng (VD: configonline.xml) thì ta phải chọn Publish Status=Include, Download Group= Require, Hash=Include.hinh6

Lưu ý: Để các file có thể hiển thị ở Application Files này thì phải chọn File Properties như sau:

hinh7

  • Prerequisities: Chọn các thành phần hỗ trợ phần mềm có thể chạy được trên Windows
  • hinh8
  • Updates: cấu hình cập nhật tự động cho phần mềm. Cập nhật trước khi mở chương trình hoặc sau khi mở. Nếu đã check vào The application should check for updates thì phải chọn đường dẫn cho Update location, đây là nơi lưu trữ các file phiên bản cần cập nhật.
  • Chọn Specify a minimum required version for this application là phiên bản hiện tại để ngăn chặn người dùng có thể restore lại phiên bản cũ.hinh9
  • Options: tùy chỉnh thông tin của ứng dụng, hiển thị khi cài đặt và hiển thị trong chi tiết Control Panel
  • Publish version: nhập phiên bản cho từng build. Check vào Automatically increment revision with each publish để hệ thống tự tăng phiên bản mỗi khi publish.
  • hinh10
  • Cuối cùng cấu hình nơi xuất file publish và nơi lưu dữ liệu phiên bản mới để chương trình có thể kiểm tra phiên bản và tự động cập nhật. Chọn Publish wizard:
    • Chỉ định đường dẫn để xuất ra file cài đặt
    • hinh11
  • Chọn phương thức người dùng có thể cài đặt phần mềm
  • hinh12
  • Bước tiếp theo rất quan trọng, phải chọn đúng vị trí để chương trình có thể gọi đến để kiểm tra phiên bản mới. Sau khi publish sẽ không có file nào được xuất đến vị trí này nhưng hệ thống sẽ cấu hình ở file <appname>.application vị trí lấy dữ liệu cập nhật <deploymentProvider codebase="file://localhost/Users/Admin/Desktop/testAutoUpdate/TestUpdate.application" />.hinh13

Sau khi đã hoàn thành các bước trên, hệ thống sẽ xuất các file như sau:

hinh14

Click vào file setup.exe để cài đặt chương trình. Vậy là đã hoàn thành quy trình Publish phiên bản phần mềm đầu tiên.

Tiếp theo, để publish những phiên bản sau và kiểm tra cập nhật tự động làm như sau:

  • Nâng Publish version (nếu không check vào tự động nâng version).
  • Chọn Publish wizard để tùy chỉnh các yêu cầu publish hoặc có thể chọn Publish now.
  • Vào nơi xuất ra file cài đặt đã publish, vào thư mục Application Files copy thư mục chứa phiên bản publish mới nhất.hinh15
  • Dán vào vị trí chứa các file để kiểm tra cập nhật phiên bản mới như đã cấu hình khi publish.hinh16
  • Tiếp tục, vào thư mục chứa file cài đặt mới nhất này copy file Application Manifest và dán ra bên ngoài cùng cấp với thư mục Application Files.hinh17
  • hinh18

Sau khi đã cập nhật các file như trên thì:

  • Đối với cấu hình kiểm tra cập nhật trước khi chương trình bắt đầu, khi mở phần mềm sẽ có thông báo cập nhật phiên bản mới như sau:hinh19
  • Đối với người dùng bấm kiểm tra cập nhật sẽ hiển thị như sau:hinh20

Bấm cancel hoặc skip với 2 trường hợp trên, thì phần mềm sẽ tiếp tục chạy với phiên bản cũ. Còn bấm OK, chương trình sẽ tự động cập nhật phiên bản mới và tự khởi động lại phần mềm.

hinh21

Kết quả:

hinh22

Code kiểm tra và tự động cập nhật như nút Check for update:

hinh23

 

How to: Check for application updates programmatically using the ClickOnce deployment API

 

 

 

Các tiện ích lập trình

Các ghi nhớ khi lập trình

1. Định dạng số ngày theo định dạng của máy.

System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CurrentCulture;

Không nên chọn kiểu en-US hay vi-VN vì khi người dùng thay đổi sẽ ảnh hưởng

2.Chỉnh font chữ

fontchu

3. Bấm vô nút mở form

frm_PhieuDeNghiThanhToan pdntt;
private void barPhieuDeNghiThanhToan_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
if (pdntt == null || pdntt.IsDisposed == true)
{
foreach (Form f in MdiChildren)
{
f.Close();
}
pdntt = new frm_PhieuDeNghiThanhToan();
pdntt.MdiParent = this;//Đặt form cha cho childForm là form này
pdntt.Show();//Hiển thị nó lên
}
}

4. Định dạng ngày tháng năm report cách đơn giản

DateTime ngaylap = DateTime.Parse(DDH.Rows[0]["NgayLapDonDatHang"].ToString());
txtNam.Text = "Ngày " + ngaylap.Day + " tháng " + ngaylap.Month + " năm " +ngaylap.Year;

 5. Selected trong combobox

cbTaiKhoan.ValueMember = "IDTaiKhoanTien";
cbTaiKhoan.DisplayMember = "TenTaiKhoan";
cbTaiKhoan.DataSource = dt;

==> it is ok

Ngược lại gán datasource trước khi định nghĩa value và display thì xem như vô nghĩa

6. Bỏ nút Edit Filter

 tat edit filter

7. Lấy giá trị ValueMember của gridLookUpEdit

gridLookUpEdit1.EditValue

8. Cẩn thận với lưu kiểu float,

Khi lấy dữ liệu trên control của Form, các bạn cứ đổi thành kiểu decimal 

Truyền tham số cứ để decimal như câu lệnh sau

decimal soluong = Convert.ToDecimal("chuong can");
cmd.Parameters.Add("@SoLuong", SqlDbType.Float).Value = soluong;

KHÔNG NÊN DÙNG HÀM ROUND NHÉ

9. Chỉnh sửa report bằng phím lên xuống qua lại

- Tô hình vuông trên đối tượng mới có thể di chuyển đối tượng đó bằng phím lên xuống qua lại, nếu đi chậm thêm nút ctrl

- Chọn thẳng vào đối tượng thì không thể di chuyển.

10, Kiểm tra rỗng và null trước khi convert 1 số từ chuỗi.

decimal f_thucXuat = String.IsNullOrEmpty(row["ThucXuat"].ToString()) ? 0 : Convert.ToDecimal(row["ThucXuat"].ToString());

11. So sánh từ ngày đến ngày không sử dụng convert trong sql để tối ưu hiệu năng

DateTime tu_ngay = dateTimePicker1.Value.Date;

DateTime den_ngay = dateTimePicker2.Value.Date;

den_ngay= den_ngay.AddDays(1);

SQL: where [NgayLap] >= @tu_ngay and [NgayLap] < @den_ngay

 

 

Hướng dẫn xóa Instance SQL Server khi trình gỡ cài đặt bị lỗi

Bước 1: Mở CMD với quyền Administrator, gõ lệnh để xóa service: sc delete MSSQLSERVER

service

Bước 2: Xóa các key sau đây trong Registry:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer

Bước 3: Chuyển đến key sau: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstallvà xóa tất cả các sub key liên quan đến SQL Server.

Bước 4: Chuyển đến key sau: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services và xóa tất cả các key liên quan đến SQL Server

Bước 5: Xóa tất cả các thư mục SQL Server trong máy tính ở C:\Program Files\Microsoft SQL Server và các thư mục con khác.