Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Convert String to Datetime trong lập trình C#?

  1. #1
    Ngày gia nhập
    10 2009
    Nơi ở
    Việt Nam
    Bài viết
    359

    Mặc định Convert String to Datetime trong lập trình C#?

    (ASPX) trong csdl e đặt trường ngày đăng kí(NgayDangKi kiểu datetime nhưng khi lưu nó lưu cả ngày và giờ), trong trang tìm kiếm e có 2 textbox nhập ngày tìm kiếm (yêu cầu nhập theo định dạng dd/mm/yyyy) txtbox1 cho nhập từ ngày bao nhiêu txtbox2 cho nhập đến ngày bao nhiêu. Rồi khi bấm vào tìm kiếm thì em muốn tìm kiếm dữ liệu trong khoảng thời gian 2 texbox này nhập vào! mọi người giúp em với!
    -Em code thế này nhưng ko đc: mọi người chỉ giáo: Code đầy đủ của btnTimKiem của em:
    Visual C# Code:
    1.  protected void btnTimKiem_Click(object sender, EventArgs e)
    2.     {
    3.         string ChuoiTimKiem = "Select STT,TenDV,Loai,DiaChi,DienThoai,Fax,Email,Website,NguoiDK,ChucVu,DienThoaiNguoiDK,EmailNguoiDK,SanPhamDK,GhiChu,Convert(Char(10),NgayDangKi,103) as Ngay_DK from DangKiPhanMem where 1=1 ";
    4.         if (txtTenDV.Text.Length != 0)
    5.             ChuoiTimKiem += " and TenDV like N'%"+txtTenDV.Text+"%'";
    6.         if (txtDiaChi.Text.Length != 0)
    7.             ChuoiTimKiem += " and DiaChi like N'%"+txtDiaChi.Text+"%'";
    8.         if (txtDTDV.Text.Length != 0)
    9.             ChuoiTimKiem += " and DienThoai = '"+txtDTDV.Text+"'";
    10.         if (txtNguoiDK.Text.Length != 0)
    11.             ChuoiTimKiem += " and NguoiDK like N'%"+txtNguoiDK.Text+"%'";
    12.         if(txtDTNgDK.Text.Length!=0)
    13.             ChuoiTimKiem+=" and DienThoaiNguoiDK = '"+txtDTNgDK.Text+"'";
    14.         if (txtEmailNgDK.Text.Length != 0)
    15.             ChuoiTimKiem += " and EmailNguoiDK = '"+txtEmailNgDK.Text+"'";
    16.         if (DRDListLoaiTC.SelectedIndex != 0)
    17.             ChuoiTimKiem += " and Loai=N'"+DRDListLoaiTC.SelectedItem.Text+"'";
    18.         if(txtNgayDK.Text.Length!=0)
    19.         {
    20.             try
    21.             {
    22.                 string ngaydk = Convert.ToDateTime(txtNgayDK.Text).ToString("dd/MM/yyyy");
    23.                 ChuoiTimKiem += " and Convert(Char(10),NgayDangKi,103) = '"+ngaydk+"'";
    24.             }
    25.             catch
    26.             {
    27.                 ChuoiTimKiem += " and 1=2";
    28.             }
    29.         }
    30.         if (txtNgayBD.Text.Length != 0)
    31.         {
    32.             try
    33.             {
    34.                 DateTime ngaybd = Convert.ToDateTime(txtNgayBD.Text);                
    35.                 if (txtNgayKT.Text.Length != 0)
    36.                 {
    37.                     DateTime ngaykt = Convert.ToDateTime(txtNgayKT.Text);
    38.                     ChuoiTimKiem += " and NgayDangKi BETWEEN '" + ngaybd + "' and '"+ngaykt+"'";
    39.                 }
    40.             }
    41.             catch
    42.             {
    43.                 ChuoiTimKiem += " and 1=2";
    44.             }
    45.         }
    46.        
    47.         try
    48.         {
    49.             dt = DKPM.TimKiemTT(ChuoiTimKiem);
    50.             if (dt.Rows.Count == 0)
    51.             {
    52.                 lbltimkiem.Text = "Tìm thấy 0 kết quả";
    53.                 GridView1.Visible = false;
    54.             }
    55.             else
    56.             {
    57.                 GridView1.Visible = true;
    58.                 GridView1.DataSource = dt;
    59.                 GridView1.DataBind();
    60.                 lbltimkiem.Text = "Tìm thấy " + dt.Rows.Count.ToString() + " kết quả";
    61.             }
    62.         }
    63.         catch
    64.         {
    65.             lbltimkiem.Text = "Tìm kiếm lỗi!";
    66.             GridView1.Visible = false;
    67.         }
    68.        
    69.     }
    Đã được chỉnh sửa lần cuối bởi pvtam2a : 28-02-2011 lúc 12:45 PM.

  2. #2
    Ngày gia nhập
    02 2011
    Nơi ở
    Tp.HCM
    Bài viết
    124

    ngaybd và ngày ngaykt là kiểu ngày sao có thể cộng vào chuỗi được.
    Chuyển sang ngày kiểu chuỗi có dạng yyyymmdd, tốt nhất là dạng năm 4 số, tháng 3 chữ (FEB), ngày 2 số, dạng DD MM YYYY

  3. #3
    Ngày gia nhập
    12 2010
    Nơi ở
    Mây
    Bài viết
    268

    Trích dẫn Nguyên bản được gửi bởi LieuLuc Xem bài viết
    ngaybd và ngày ngaykt là kiểu ngày sao có thể cộng vào chuỗi được.
    Chuyển sang ngày kiểu chuỗi có dạng yyyymmdd, tốt nhất là dạng năm 4 số, tháng 3 chữ (FEB), ngày 2 số, dạng DD MM YYYY
    - Đây là mình đang tạo câu lệnh truy vấn SQL thì sao lại không cộng được.
    - Còn bạn chủ topic có thể cho mình xem đoạn code trước đó không
    - Lêu lêu

  4. #4
    Ngày gia nhập
    06 2010
    Bài viết
    490

    Visual C# Code:
    1. if (txtNgayBD.Text.Length != 0)
    2. {
    3.             try
    4.             {
    5.                 DateTime ngaybd = Convert.ToDateTime(txtNgayBD.Text);                
    6.                 if (txtNgayKT.Text.Length != 0)
    7.                 {
    8.                     DateTime ngaykt = Convert.ToDateTime(txtNgayKT.Text);
    9.                     ChuoiTimKiem += " and NgayDangKi BETWEEN '" + ngaybd + "' and '"+ngaykt+"'";
    10.                 }
    11.             }
    12.             catch
    13.             {
    14.                 ChuoiTimKiem += " and 1=2";
    15.             }
    16. }

    - viết code khó hiểu quá bạn cộng chuổi rồi cái này làm gì "ChuoiTimKiem += " and 1=2";"

    Code:
    SELECT * FROM Store_Information WHERE Date BETWEEN 'Jan-06-1999' AND 'Jan-10-1999'
    
    nguồn
    Hãy bình tĩnh giải quyết mọi vấn đề.

  5. #5
    Ngày gia nhập
    10 2009
    Nơi ở
    Việt Nam
    Bài viết
    359

    code của btnTimKiem của mình đây các bạn xem hộ mình nhá:
    Code:
     protected void btnTimKiem_Click(object sender, EventArgs e)
        {
            string ChuoiTimKiem = "Select STT,TenDV,Loai,DiaChi,DienThoai,Fax,Email,Website,NguoiDK,ChucVu,DienThoaiNguoiDK,EmailNguoiDK,SanPhamDK,GhiChu,Convert(Char(10),NgayDangKi,103) as Ngay_DK from DangKiPhanMem where 1=1 ";
            if (txtTenDV.Text.Length != 0)
                ChuoiTimKiem += " and TenDV like N'%"+txtTenDV.Text+"%'";
            if (txtDiaChi.Text.Length != 0)
                ChuoiTimKiem += " and DiaChi like N'%"+txtDiaChi.Text+"%'";
            if (txtDTDV.Text.Length != 0)
                ChuoiTimKiem += " and DienThoai = '"+txtDTDV.Text+"'";
            if (txtNguoiDK.Text.Length != 0)
                ChuoiTimKiem += " and NguoiDK like N'%"+txtNguoiDK.Text+"%'";
            if(txtDTNgDK.Text.Length!=0)
                ChuoiTimKiem+=" and DienThoaiNguoiDK = '"+txtDTNgDK.Text+"'";
            if (txtEmailNgDK.Text.Length != 0)
                ChuoiTimKiem += " and EmailNguoiDK = '"+txtEmailNgDK.Text+"'";
            if (DRDListLoaiTC.SelectedIndex != 0)
                ChuoiTimKiem += " and Loai=N'"+DRDListLoaiTC.SelectedItem.Text+"'";
            if(txtNgayDK.Text.Length!=0)
            {
                try
                {
                    string ngaydk = Convert.ToDateTime(txtNgayDK.Text).ToString("dd/MM/yyyy");
                    ChuoiTimKiem += " and Convert(Char(10),NgayDangKi,103) = '"+ngaydk+"'";
                }
                catch
                {
                    ChuoiTimKiem += " and 1=2";
                }
            }
            if (txtNgayBD.Text.Length != 0)
            {
                try
                {
                    DateTime ngaybd = Convert.ToDateTime(txtNgayBD.Text);                
                    if (txtNgayKT.Text.Length != 0)
                    {
                        DateTime ngaykt = Convert.ToDateTime(txtNgayKT.Text);
                        ChuoiTimKiem += " and NgayDangKi BETWEEN '" + ngaybd + "' and '"+ngaykt+"'";
                    }
                }
                catch
                {
                    ChuoiTimKiem += " and 1=2";
                }
            }
           
            try
            {
                dt = DKPM.TimKiemTT(ChuoiTimKiem);
                if (dt.Rows.Count == 0)
                {
                    lbltimkiem.Text = "Tìm thấy 0 kết quả";
                    GridView1.Visible = false;
                }
                else
                {
                    GridView1.Visible = true;
                    GridView1.DataSource = dt;
                    GridView1.DataBind();
                    lbltimkiem.Text = "Tìm thấy " + dt.Rows.Count.ToString() + " kết quả";
                }
            }
            catch
            {
                lbltimkiem.Text = "Tìm kiếm lỗi!";
                GridView1.Visible = false;
            }
            
        }

  6. #6
    Ngày gia nhập
    10 2009
    Nơi ở
    Việt Nam
    Bài viết
    359

    Mặc định Convert String to Datetime trong lập trình C#?

    ý mình nghĩa là nếu convert.todatetime ko thành công thì cộng thêm vào mệnh đề where and 1=2 nghĩa là không tìm kiếm đc j vì coi như đk sai mà!

  7. #7
    Ngày gia nhập
    12 2010
    Nơi ở
    Mây
    Bài viết
    268

    Trích dẫn Nguyên bản được gửi bởi pvtam2a Xem bài viết
    ý mình nghĩa là nếu convert.todatetime ko thành công thì cộng thêm vào mệnh đề where and 1=2 nghĩa là không tìm kiếm đc j vì coi như đk sai mà!
    - Bản thân hàm try{}catch{} khi nhảy vào catch thì là điều kiện sai rồi. Tức là lúc này sẽ thực hiện 1 công việc nào đó. chứ gán sai thì sao đc
    - Lêu lêu

  8. #8
    Ngày gia nhập
    10 2009
    Nơi ở
    Việt Nam
    Bài viết
    359

    Thì dù thế nào thì cuối cùng mình cũng gọi câu sql đó nếu như convert ko thành công mà ko gán thêm cái and 1=2 vào sql thì có pải ngày họ nhập vào vẫn đúng đúng ko! nên nếu họ nhập sai thì mình and cái 1=2 vào thêm mệnh đề where thì chắc chắc sẽ ko tìm đc j.

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

  1. Cách convert int sang datetime trong C#?
    Gửi bởi thtrungtinh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 26-07-2013, 10:49 AM
  2. Chuyển string thành Datetime bị lỗi String was not recognized as a valid DateTime?
    Gửi bởi nguyenvantien87 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 11
    Bài viết cuối: 19-06-2013, 11:17 AM
  3. Định dạng datetime trong DataList ASP.NET - string format có tác dụng gì?
    Gửi bởi coldheart trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 4
    Bài viết cuối: 22-04-2013, 10:58 AM
  4. Xin hướng dẫn tạo cảnh báo (convert datetime to string)
    Gửi bởi bkthuan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 11-06-2011, 11:00 AM
  5. Convert Datetime trong sql server 2000. cần giúp đỡ
    Gửi bởi kendy92 trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 1
    Bài viết cuối: 16-06-2010, 10:29 AM

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