[Question] Vấn đề nan giải với GRIDVIEW mãi vẫn chứa có câu trả lời nào ! |
20/06/2008 04:56:04 (+0700) | #1 | 136476 |
knonk
Member
|
0 |
|
|
Joined: 04/03/2007 20:14:47
Messages: 29
Offline
|
|
Hi, Minh dang lam mot trang web su dung ASP va SQL Sever 2000
Mình có 1 Gridview có các cột : MãSP,TênSP,Số Lượng
Mỗi khi user nhập 1 dòng dữ liệu thì thực hiện kiểm tra các tác vụ sau :
+ Kiểm tra MãSP không trùng lặp với các MãSP ở các dòng khác trên GridView
+ Kiểm tra MãSP có trong CSDL chưa, để xác định xem user muốn nhập một SP mới hay là nhập thêm SP cũ.Nếu là SP mới thì thêm mới, nếu là SP cũ thì chỉ cập nhật lại Số Lượng của SP đó.
+ Kiểm các ô trên 1 dòng không được NULL
+ Kiểm tra các quy định về Số Lượng khi nhập SP, quy định này được luu trong CSDL
Trong đó SP : Sản phẩm
Mục đích cuối cùng : cập nhật thêm sản phẩm vào bảng SảnPhẩm trong CSDL thỏa các quy định về nhập sản phẩm.
Vấn đề : Nếu trong CSDL, bảng Sản Phẩm đã có 1 triệu sản phẩm(1 triệu mẩu tin), và mỗi lần nhập, user nhập
5000 dòng trên Gridview, thì App sẽ bị chậm và có khã năng die vì các thao tác kiểm tra mình đã nêu trên.
Một tính toán sơ bộ : mỗi lần nhập thì số lần kiểm tra =
5000 lần duyệt kiểm tra trùng mã * 1triệu lần duyệt đễ xác định SP mới hay đã tồn tại
Rất mong các bạn đưa ra giải pháp giúp mình. Mình xin chân thành cảm ơn và có hậu tạ !
|
|
|
|
|
[Question] Re: Vấn đề nan giải với GRIDVIEW mãi vẫn chứa có câu trả lời nào ! |
20/06/2008 09:33:25 (+0700) | #2 | 136509 |
|
YHT
Member
|
0 |
|
|
Joined: 21/04/2006 13:29:33
Messages: 173
Location: HCM
Offline
|
|
- Để kiểm tra trùng mã bạn không cần phài duyệt qua tất cả các dòng mà chỉ cần lệnh
EXISTS(SELECT 1 FROM SanPham WHERE MaSP=@MaSP), nếu kết quả là true thì đã tồn tại.
- Để kiểm tra các ô trên dòng không được NULL ta sẽ làm 2 cấp: 1 là dùng Javascript kiểm tra trước, 2: nếu vẫn sót thì có thể xử lý ngoại lệ (try, catch, On error goto, ...), trong datbase cần ràng buộc NOT NULL cho các cột.
- Tương tự cho kiểm tra số lượng.
Sau đó dùng lệnh:
IF (EXISTS(SELECT 1 FROM.....))
UPDATE ...
ELSE
INSERT
- Không ai đi đè đầu 5000 dòng dữ liệu cho load hết lên chương trình, bạn phải sử dụng các cơ chế lấy dữ liệu thích hợp để load lên số lượng dữ liệu vừa đủ thôi.
--YHT
|
|
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|