Follow us on...
Follow us on Twitter Follow us on Facebook Watch us on YouTube

Tuyển chuyên viên tin tức VN-Zoom 2014

Tìm HD - Phần mềm tìm và xem phim HD miễn phí

Hoãn tổ chức offline VN-Zoom 8 năm tại TP HCM

Chiêm ngưỡng BaoMoi đẹp "tuyệt diệu" trên Windows Phone

Tài trợ VNZ Siêu phẩm Tân Kiếm Thế chibi 3D mới

Tuyển BQT VN-Zoom
Trang 2/2 đầuđầu 1 2
kết quả từ 16 tới 28 trên 28
  1. #16
    inhvyb's Avatar
    inhvyb vẫn chưa có mặt trong diễn đàn Búa Gỗ Đôi
    Tham gia
    Nov 2010
    Bài
    35
    Cảm ơn
    3
    Điểm
    4/3 bài viết
    VR power
    0

    Default

    bạn vào đây mà tham khảo.có video dây khá rõ ràng

  2. #17
    ktp38's Avatar
    ktp38 vẫn chưa có mặt trong diễn đàn Gà Con
    Tham gia
    Aug 2009
    Đến từ
    Bình Dương
    Bài
    1
    Cảm ơn
    0
    Điểm
    0/0 bài viết
    VR power
    0

    Default

    declare @manhanvienmoi as varchar(6)
    declare @ma as varchar(6) -- Vì mã nhân viên của bạn có chiều dài là 6
    SELECT @ma=max(manv) FROM nhanvientable
    set @manhanvienmoi = left(@ma,2)+right('0000'+cast(right( @ma,4)*1+1 as varchar) ,4)

    --OK rồi đó bạn, lúc này bạn chỉ việc inser với manv = @manhanvienmoi là ok.

    -- Insert nhanvientable(manv,.......) values (@manhanvienmoi,......)

    Bạn tham khảo thử nha!
    Thay đổi nội dung bởi ktp38; 29-03-2012 lúc 01:26.

  3. #18
    master_lam's Avatar
    master_lam vẫn chưa có mặt trong diễn đàn Búa Đá
    Tham gia
    May 2008
    Bài
    68
    Cảm ơn
    57
    Điểm
    17/8 bài viết
    VR power
    0

    Default

    link die rồi bạn ơi. Bạn upload lại dùm mình dc ko? thank nhiều

  4. #19
    vanduong90's Avatar
    vanduong90 vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Jun 2008
    Đến từ
    Bắc Ninh
    Bài
    172
    Cảm ơn
    115
    Điểm
    4.294.967.295/44 bài viết
    VR power
    0

    Default

    Trích dongphuongcr View Post
    Tình hình là mình có table: NhanVien(MaNV,HoTen). Mình biết trong MS SQL Server có cho thuộc tính tăng tự động Identity(yes), nhưng thầy mình yêu cầu viết trigger cho sự kiện Insert, cứ mỗi lần xuống dòng là mã nhân viên tự tăng lên như vầy: NV0001, NV0002, NV0003,... mà không cần nhập thô vào. Mong các bạn nào giỏi về chuyên môn giúp mình đoạn code trigger nha.
    Bạn thử vào đây tham khảo coi sao.


    Khi muốn một cột tự tăng giá trị của nó thì ta sử dụng từ khóa IDENTITY([Bắt đầu tăng từ giá trị nào], [mỗi lần tăng bao nhiêu đơn vị]).
    Ví dụ bạn muốn cột id bắt đầu từ 1 và mỗi lần tăng lên 1 thì ta làm như sau:
    Code:
    ID INT IDENTITY(1,1)
    Chia sẻ là niềm vui

  5. #20
    vytngok1992's Avatar
    vytngok1992 vẫn chưa có mặt trong diễn đàn Rìu Vàng
    Tham gia
    Oct 2010
    Đến từ
    đâu còn lâu mới nói!
    Bài
    684
    Cảm ơn
    812
    Điểm
    496/230 bài viết
    VR power
    0

    Default

    Trích ngocqui1703 View Post
    minh thì làm kiểu int, mổi lần thêm mới mình lập trình [max(ma_cv) + 1] (vd ma_sv la khóa chính kiểu int(4))..
    1.nhưng mình sợ khi bảo vệ đồ án nếu thầy hỏi: "nếu người ta xóa ở giửa thì sao? " 1, 2, 4, 6, 200: khi thêm thành ra 201.
    2.vấn đè thứ 2: nếu kiểu int 4 số..(thì lớn nhẩt là 9999) vậy người ta ta thêm xóa, xóa, xóa, rồi thêm.. thành ra ví dụ như (1,2,3,8, 9999) vậy khi thêm mới thì thế nào?nếu tăng kiểu int lên 5 số thì vấn đề 99999.
    Vì mình bên phấn tích hệ thống nên muốn làm hệ thống tối ưu. mong các pro nào có ý tưởng thì giúp mình...

    ---------- Bài thêm lúc 19:30 ---------- Bài trước là lúc 19:28 ----------



    z nếu NV9999 thì thế nào?
    Bạn này nói buồn cười nhỉ, số kí tự số đằng sau là bao nhiêu thì do quá trình phân tích bài toán, trong trường hợp này thì xác định xem quy mô công ty lớn hay nhỏ, để xem có bao nhiêu nhân viên rồi xây dựng cơ sở dữ liệu. Chu trình sử dụng của 1 ứng dụng, hay csdl ko phải là mãi mãi, mà nó có chu kỳ và cần nâng cấp theo thời gian. Việc rơi vào vòng lặp khi số nhân viên lớn hơn 9999 của bạn là do quá trình phân tích bạn không xét khả năng vượt ngưỡng NV9999. Bạn có thể dựa vào thực tế bài toán, và ước lượng thời hạn của ứng dụng để xây dựng csdl tối ưu nhất.
    Đây là store cho bảng PhongBan của mình, chắc giải quyết được vấn đề của bạn, tức là thêm mã 2 nếu trong bảng có mã 1,3,4..
    CREATE PROCEDURE [dbo].[PhongBan_Them]
    (--@MaPB [tinyint],
    @TenPB [nvarchar](50))

    AS
    --Kiểm tra tên phòng ban đã có ?
    select * from PhongBan where TenPB=@TenPB
    if @@rowcount=0 --nếu chưa có
    begin
    declare @MaPB tinyint --Luu ma so
    declare @n int --Luu so dong hien tai cua bang
    --Lập trình sinh mã số tự động
    --Kiểm tra có dòng nào trong bảng?
    select * from PhongBan
    set @n=@@rowcount
    if @n=0 --nếu chưa có dòng nào
    set @MaPB=1
    else
    begin
    set @MaPB=1
    while (@MaPB in (select MaPB from PhongBan)) and (@MaPB<=@n) set @MaPB=@MaPB+1
    end
    --Da tim duoc @MaPB
    INSERT INTO [PhongBan]
    ( [MaPB],
    [TenPB])

    VALUES
    ( @MaPB,
    @TenPB)
    end
    Đây là 1 ví dụ về bảng SanPham lấy giá trị ngày tháng năm để lâp trình sinh mã tự động:
    CREATE PROCEDURE [dbo].[SanPham_Them]
    (--@MaSP [nchar](9),
    @TenSP [nvarchar](50),
    @AnhSP [nvarchar](50),
    @DonGia [money],
    @TomTat [nvarchar](500),
    @ChiTiet [ntext],
    @NgayGT [smalldatetime],
    @MaNV [smallint],
    @HienThi [bit],
    @MaLSP [tinyint])

    AS
    declare @MaSP nchar(9)
    declare @NTN nchar(6)
    declare @SoThuTuSP nchar(3)
    declare @n int
    select @NTN = right(convert(nvarchar, getdate(), 103), 2) + substring(convert(nvarchar, getdate(), 103), 4, 2) + left(convert(nvarchar, getdate(), 103), 2)
    select * from SanPham where left(MaSP,6) = @NTN
    set @n=@@rowcount
    if @n=0
    set @MaSP = @NTN + '001'
    else
    begin
    set @MaSP = @NTN + '001'
    while (@MaSP in (select MaSP from SanPham)) and (cast(right(@MaSP,3) as int)<=@n)
    begin
    declare @SoSP int
    set @SoSP = (cast(right(@MaSP,3) as int)+1)%1000
    if ((@SoSP>0) and (@SoSP < 10))
    set @SoThuTuSP = '00' + str(@SoSP,1,0)
    else
    if (@SoSP<100)
    set @SoThuTuSP = '0' + str(@SoSP,2,0)
    else
    set @SoThuTuSP = str(@SoSP,3,0)
    set @MaSP = @NTN + @SoThuTuSP
    end
    end

    INSERT INTO [SanPham]
    ( [MaSP],
    [TenSP],
    [AnhSP],
    [DonGia],
    [TomTat],
    [ChiTiet],
    [NgayGT],
    [MaNV],
    [HienThi],
    [MaLSP])

    VALUES
    ( @MaSP,
    @TenSP,
    @AnhSP,
    @DonGia,
    @TomTat,
    @ChiTiet,
    @NgayGT,
    @MaNV,
    @HienThi,
    @MaLSP)
    Hãy bấm Thank và bạn sẽ có 3 phương tiện truyền thông phổ biến nhất :
    Truyền hình, Internet và...Con gái
    Còn giờ đừng có tò mò mà bấm dưới này

    Đã bảo đừng có Bấm mà lại..>!^

  6. Có 1 thành viên cảm ơn vytngok1992 cho bài viết này:
    namphong_008 (11-03-2014)

  7. #21
    hoanghuyhung's Avatar
    hoanghuyhung vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Jan 2010
    Bài
    124
    Cảm ơn
    1
    Điểm
    35/22 bài viết
    VR power
    0

    Default

    Trích muathuvangem View Post
    Nếu bạn thành thạo các câu lệnh sql và c#thì việc đó có gì khó? Bạn cần viết một hàm tăng mã tự động thôi, mình nói đơn giản thế này:
    NV0002 là NV+0002 => Trong câu lệnh truy vấn bạn cắt 0002 ra riêng và chuyển thành kiểu int sau đó tăng nó lên 1 là ok.
    ví dụ
    public string HamTTD(string first, string second,Int16 incre)//nv+000+2
    Nhưng phải đảm bảo rằng phải kiểm tra trước xem nó là hàng nghìn, trăm, chục.......
    ví dụ: NV0009 thì nhân viên thứ 10 thì phải là NV+0010.
    chúc bạn vui.
    cần gì kiểm tra hàng chục hàng trăm mệt xác,, kiểm tra tổng số ký tự đơn giản hơn,,

  8. #22
    Tham gia
    Feb 2012
    Bài
    1
    Cảm ơn
    0
    Điểm
    0/0 bài viết
    VR power
    0

    Default Rang buoc gioi tinh

    Tui moi hoc sql nen co nhiu cai ko biet mong cac bac chi jum.

    De bai tap; khi tui tao bang co rang buoc phai cua nhan vien co gia tri la 1 neu la nu hoac -1 neu la nam,mac dinh la -1.

    Thankus cac bac!!!!

  9. #23
    tanbinh25's Avatar
    tanbinh25 vẫn chưa có mặt trong diễn đàn Gà Con
    Tham gia
    Sep 2009
    Bài
    6
    Cảm ơn
    0
    Điểm: 2/1 bài viết
    VR power
    0

    Default

    Làm vậy cho nhanh.
    public string sinhma(string chuikenoi, string Ma)
    {
    string ma = "";
    try
    {
    if (kn.State == ConnectionState.Closed)
    kn.Open();
    SqlCommand cm = new SqlCommand(chuikenoi, kn);
    SqlDataReader rd = cm.ExecuteReader();
    while (rd.Read())
    ma = rd[0].ToString();
    rd.Close();
    ma = ma.Substring(2,3);
    int tt = Convert.ToInt32(ma);
    tt++;
    if (tt.ToString().Length == 1)
    ma = Ma + "00" + tt.ToString();
    else if (tt.ToString().Length == 2)
    ma = Ma + "0" + tt.ToString();
    else if (tt.ToString().Length == 3)
    ma = Ma + tt.ToString();
    return ma;
    }
    catch
    {
    return ma = Ma + "001";
    }
    }

  10. #24
    bankimo's Avatar
    bankimo vẫn chưa có mặt trong diễn đàn Rìu Sắt Đôi
    Tham gia
    Jul 2010
    Đến từ
    HCM
    Bài
    262
    Cảm ơn
    5
    Điểm
    18/17 bài viết
    VR power
    0

    Default

    Trích dongphuongcr View Post
    Tình hình là mình có table: NhanVien(MaNV,HoTen). Mình biết trong MS SQL Server có cho thuộc tính tăng tự động Identity(yes), nhưng thầy mình yêu cầu viết trigger cho sự kiện Insert, cứ mỗi lần xuống dòng là mã nhân viên tự tăng lên như vầy: NV0001, NV0002, NV0003,... mà không cần nhập thô vào. Mong các bạn nào giỏi về chuyên môn giúp mình đoạn code trigger nha.
    cái này quá dể liên hệ Email mình mình gỏi cho bạn
    1 hàm tăng mã và 1 câu truy vấn là giải quyết tất cả ấy mà
    maNV ko cần phải nhập cho nó tăng lên và cái testboxMaNV enable=false
    Vd NV0001 tiếp theo là NV0002
    ok

  11. #25
    hailinh_102's Avatar
    hailinh_102 vẫn chưa có mặt trong diễn đàn Gà Con
    Tham gia
    Oct 2012
    Bài
    8
    Cảm ơn
    0
    Điểm
    0/0 bài viết
    VR power
    0

    Default

    chẳng thấy gì...dow thì không dow được,,,chán

  12. #26
    taurentchieftain's Avatar
    taurentchieftain vẫn chưa có mặt trong diễn đàn Rìu Bạc
    Tham gia
    Mar 2009
    Đến từ
    Long An
    Bài
    404
    Cảm ơn
    12
    Điểm
    181/135 bài viết
    VR power
    0

    Default

    code SQL pờ rồ đây, đáp ứng yêu cầu của bạn:

    CREATE PROCEDURE [dbo].[ThemNhanVien]
    @TenNV nvarchar(50)
    AS
    BEGIN

    declare @return nvarchar(50), @MaNVCuoi nvarchar(50), @tempNumber nvarchar(50) ,@tempLen int, @nextnumber int
    select top(1) @MaNVCuoi = manv from nhanvien order by manv desc -- lấy cái MaNV cuối cùng trong bảng
    if(@MaNVCuoi is not null)
    begin
    -- Analyzing...
    select @tempLen = len(@MaNVCuoi) -- cho biết độ dài của chuổi
    select @tempNumber = substring(@MaNVCuoi,3,@tempLen - 2) -- Trả về con số trong chuối, bắt đầu lấy từ ký tự thứ 3 cho đên hêt chuổi (trừ 2 chữ 'NV' ra)
    select @nextnumber = convert(int,@tempNumber) + 1 -- cho nó tăng thêm 1 đơn vị, chuẩn bị chèn vô

    -- cấu trúc switch-case-default bên SQL là thế này
    select @return = case
    when len(convert(nvarchar,@nextnumber))=1 then 'NV000'+convert(nvarchar,@nextnumber) --nếu là số có 1 chữ số
    when len(convert(nvarchar,@nextnumber))=2 then 'NV00'+convert(nvarchar,@nextnumber) -- nếu là 2 chữ số
    when len(convert(nvarchar,@nextnumber))=3 then 'NV0'+convert(nvarchar,@nextnumber) -- nếu là 3 chữ số
    when len(convert(nvarchar,@nextnumber))=4 then 'NV'+convert(nvarchar,@nextnumber) --nếu là 4 chữ số
    else 'NV'+convert(nvarchar,@nextnumber) -- nếu trên 4 chữ số: từ 10,000 trở đi
    end -- end of switch-case-default

    end -- endif
    else select @return='NV0001' -- nếu chưa có mẩu tin nào trong bảng nhân viêcn hết
    insert into nhanvien values(@return,@TenNV )
    END
    Thay đổi nội dung bởi taurentchieftain; 16-10-2012 lúc 18:46.

  13. Có 2 thành viên cảm ơn taurentchieftain cho bài viết này:
    gio_vh (28-04-2014), squirrel_black (01-12-2012)

  14. #27
    Tham gia
    Oct 2009
    Bài
    2
    Cảm ơn
    0
    Điểm
    0/0 bài viết
    VR power
    0

    Default

    Đầu tiên em chào các tiền bối, khi e search từ khóa và đọc đến đoạn bạn dongphuongcr nói vo-zoom vô dụng, thật lòng e ko hiểu bạn đó nghĩ gì, đồng ý là bạn ý có tinh thần học hỏi và nhờ các a/chị chỉ bảo, nhưng đâu phải lúc nào mọi ng cũng onl để "phục vụ bố con bạn ý" mà chưa gì đã bảo vô dụng, có thể bạn giỏi về chuyên môn nhưng nói thật kĩ năng(mềm) cơ bản khi đi nhờ vả, bạn còn ko bằng đứa cháu lên 3 tuổi của mình.
    Ở đây là các ạnh chị cũng k chấp và vẫn giúp bạn, điều bạn đáng học hỏi.
    Thật lòng đóng góp, dù bạn chưa chắc đã vui và cần nó.

  15. #28
    thaphurobe's Avatar
    thaphurobe vẫn chưa có mặt trong diễn đàn Búa Gỗ
    Tham gia
    Aug 2007
    Bài
    12
    Cảm ơn
    5
    Điểm
    6/5 bài viết
    VR power
    0

    Default

    Trích muathuvangem View Post
    Nếu bạn thành thạo các câu lệnh sql và c#thì việc đó có gì khó? Bạn cần viết một hàm tăng mã tự động thôi, mình nói đơn giản thế này:
    NV0002 là NV+0002 => Trong câu lệnh truy vấn bạn cắt 0002 ra riêng và chuyển thành kiểu int sau đó tăng nó lên 1 là ok.
    ví dụ
    public string HamTTD(string first, string second,Int16 incre)//nv+000+2
    Nhưng phải đảm bảo rằng phải kiểm tra trước xem nó là hàng nghìn, trăm, chục.......
    ví dụ: NV0009 thì nhân viên thứ 10 thì phải là NV+0010.
    chúc bạn vui.
    Làm cách này thì tối ưu rồi, nếu NV9999, thì cho NV+9998+1 thôi, nếu quá 9999 thì mình phải cho nó giới hạn hoặc tăng trước lên NV00001

 

 
Trang 2/2 đầuđầu 1 2

Quyền sử dụng

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