Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 16 kết quả

Đề tài: Làm thế nào để lấy Số tự tăng trong Database!!

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    11

    Mặc định Làm thế nào để lấy Số tự tăng trong Database!!

    Trước khi insert vào database, tớ muốn hiển thị trước số tự động tăng của cột primary key thì phải sao?

  2. #2
    Ngày gia nhập
    11 2007
    Bài viết
    294

    Select bản ghi cuối cùng rồi cộng nó vào.
    Is the moon rising...

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    11

    ah! nếu như xóa đi 1 dòng mới insert, rui insert lại, thì cái số đó bị sai rùi bạn, cách này ko được bạn ơi. đã suy nghĩ wa rùi. làm cách đó là bị out. zeroooo. hix hix

  4. #4
    Ngày gia nhập
    10 2007
    Bài viết
    37

    Theo mình biết thì kô có cách nào để lấy đâu, vì khi insert RDBMS mới sinh ra cái indentity
    Mà nếu bạn đã chấp nhận dùng identity rồi thì show lên làm gì vì nó tự động tạo mà.

  5. #5
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà nội
    Bài viết
    77

    nếu xử lý tự tăng bằng code thì khi xóa chỉ nên ẩn cái record đó đi(bằng cách tạo thêm 1 cột check,giả định true(or false) coi như là ẩn,mặc dù nó vẫn tồn tại),lúc insert thì tìm max trong cột chứa số rồi cộng thêm 1
    còn nếu đã dặt cột đó là identity thì việc gì phải code,cứ lệnh insert bình thường,nó tự tạo ra số đó(ko kể số đã bị xóa)
    Sống ở trên đời cần có một TẤM LÒNG để lúc đói còn có chỗ mà nhét THỨC ĂN

  6. #6
    Ngày gia nhập
    11 2007
    Bài viết
    294

    Mặc định Làm thế nào để lấy Số tự tăng trong Database!!

    Dark quên mất trường hợp đó thật ^^!
    Với bài toán của bạn Dark đoán là bạn muốn lấy số đó để hiển thị lên grid ^^!Right?
    Thế thì có cách chắc chắn chạy là insert dòng nào thì return dòng đó ^^!
    Is the moon rising...

  7. #7
    Ngày gia nhập
    06 2007
    Nơi ở
    TP.HCM
    Bài viết
    113

    Nếu xử lý trong SQL (trên C# thì cũng nên dùng luôn SQL). Và nếu lấy Identity sau khi thêm 1 dòng thì có câu lệnh @@IDENTITY của SQL như sau:

    Ví dụ: Có table như sau:

    SQL Code:
    1. CREATE TABLE IdentitySelect
    2. (
    3.     [ID] INT IDENTITY(1,1),
    4.     [Test] VARCHAR(10)
    5. )

    Nếu muốn lấy Identity sau khi thêm 1 dòng vào table IdentitySelect thì như sau:

    SQL Code:
    1. INSERT INTO IdentitySelect
    2. VALUES('Sunflower')
    3. SELECT @@IDENTITY AS [ID]

    Còn nếu muốn lấy khi chưa thêm dữ liệu thì ko biết còn cách nào khác không nhưng mình nghĩ có thể dùng select. Cách này sẽ ko tốt nếu CSDL lớn.

    SQL Code:
    1. SELECT top 1 [ID]
    2. FROM IdentitySelect
    3. ORDER BY [ID] DESC


    Đó chỉ là cách lấy ra 1 mẫu tin trên cùng sau khi sắp xếp giảm dần (vì số Identity tăng dần mà ).

    Mình nghĩ chắc bằng 1 trong 2 cách đó bạn có thể biến thể để sử dụng theo ý bạn.
    Đã được chỉnh sửa lần cuối bởi Kevin Hoang : 30-03-2008 lúc 11:27 PM. Lý do: Thử tag SQL

    Gác Kiếm

  8. #8
    Ngày gia nhập
    03 2008
    Bài viết
    11

    thank ^^, tớ lấy được số ID tự tăng rùi ^^. Nhưng tớ thắc mắc cái này tí. VD : bạn insert 1 values, thi identity là 1, bạn xóa row đó đi. khi insert lại thì nó là 2, tớ muốn nó là số hiện tại là 1 chứ ko phải là 2, vấn đề đó, có cách nào giải quyết không vậy.

  9. #9
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà nội
    Bài viết
    77

    ??? mỗi bài viết yêu cầu 1 kiểu
    chạy vòng lặp duyệt cột chứa số với step=1,nếu bị dừng lại nghĩa là có 1 lỗ hổng,lấy được số đó rồi thì cộng thêm 1
    nếu ko thì lấy max trong cột đó rồi cộng thêm 1
    (tất nhiên là ko thể để cột chứa số là identity được)
    Sống ở trên đời cần có một TẤM LÒNG để lúc đói còn có chỗ mà nhét THỨC ĂN

  10. #10
    Ngày gia nhập
    05 2009
    Bài viết
    42

    Trích dẫn Nguyên bản được gửi bởi heeluyn Xem bài viết
    thank ^^, tớ lấy được số ID tự tăng rùi ^^. Nhưng tớ thắc mắc cái này tí. VD : bạn insert 1 values, thi identity là 1, bạn xóa row đó đi. khi insert lại thì nó là 2, tớ muốn nó là số hiện tại là 1 chứ ko phải là 2, vấn đề đó, có cách nào giải quyết không vậy.
    Bạn làm bằng cách nào để lấy dc vậy? Có thể share cho mình tham khảo k? Mình đang cần lấy ID trước khi insert mà k biết làm cách nào? Mình dùng LINQ . Thanks bạn

Các đề tài tương tự

  1. MySQL với C# Kết nối MySQL database đến một máy khác trong Lan như thế nào?
    Gửi bởi bull6023 trong diễn đàn Thắc mắc MySQL và SQLite
    Trả lời: 2
    Bài viết cuối: 18-12-2011, 11:01 PM
  2. Database Cách tạo quan hệ trong Database như thế nào ?
    Gửi bởi huuhung trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 18
    Bài viết cuối: 06-05-2011, 03:27 PM
  3. Tự động update database trong lập trình C# thế nào ?
    Gửi bởi saonam trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 17-01-2011, 12:32 PM
  4. Sử dụng database giữa hai cơ sở trong c# như thế nào?
    Gửi bởi dien trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 21-07-2010, 10:11 AM
  5. bảo vệ dữ liệu trong Database như thế nào?
    Gửi bởi xadieu trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 31-05-2008, 06:38 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn