banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Vấn đề nan giải với GRIDVIEW mãi vẫn chứa có câu trả lời nào !  XML
  [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

[Minus]    0    [Plus]
Joined: 04/03/2007 20:14:47
Messages: 29
Offline
[Profile] [PM] [Yahoo!]
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ạ !
[Up] [Print Copy]
  [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
[Avatar]
YHT
Member

[Minus]    0    [Plus]
Joined: 21/04/2006 13:29:33
Messages: 173
Location: HCM
Offline
[Profile] [PM] [WWW] [Yahoo!]
- Để 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



[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 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|