Announcement

Collapse
No announcement yet.

[HỎI] Tìm kiếm trong cơ sở dữ liệu

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [HỎI] Tìm kiếm trong cơ sở dữ liệu

    Em có một table tên CHUONGTRINH trong đó có một cột là dùng để lưu tên các quốc gia (QUOCGIA), bây giờ người dùng muốn nhập mới ví dụ nhập : "Nhật Bản" thì làm sao để ta kiểm tra quốc gia "Nhật Bản" đã có trong CSDL hay chưa ?. Trước đó em dùng ExecuteScalar() thì chỉ tìm được một chữ ví dụ nhập: "Nhật" thì check được quốc gia Nhật này...Mong anh chị giúp đỡ
    Facebook: Kiều Thắng
    Google Plus: Kiều Thắng
    Thông tin về du học các nước: Du học.


  • #2
    Bạn đã viết được câu SQL dùng cho việc tìm kiếm này hay chưa?
    CLB ITI UIT | https://www.facebook.com/groups/ITIClub/ | https://www.facebook.com/ITIClub/
    Microsoft Tech4Student | https://www.facebook.com/Tech4Student
    MSP Việt Nam | https://www.facebook.com/mspvn

    Comment


    • #3
      Mình đã viết như sau:
      string quocgia = Convert.ToString(txtQuocGia.Text); // txtQuocGia là cái textBox để nhập tên quốc gia
      string commandText = "select * from tblChuongTrinhMoi where QuocGia =" + "'" + quocgia + "'";

      SqlCommand sqlCommand = new SqlCommand(commandText, sqlConnection);
      object obj = sqlCommand.ExecuteScalar();

      if (obj == null)
      {
      // Lưu quốc gia mới
      }
      else
      MessageBox.Show("Quốc gia đã tồn tại, mời bạn nhập quốc gia khác hoặc kết thúc", "Thông báo");
      Cái này nó chỉ đúng nếu như quốc gia chỉ là một chữ như là: "Mỹ", "Pháp".....còn nếu mà mình nhập Trung Quốc thì không kiểm tra được........hic (2 chữ là nó tìm không được) , giờ ko biết làm sao nữa
      Facebook: Kiều Thắng
      Google Plus: Kiều Thắng
      Thông tin về du học các nước: Du học.

      Comment


      • #4
        Code:
        Create PROCEDURE [dbo].[Search]
        	@requestStr	nvarchar(64)
        As
        Begin
        	set @requestStr='%'+@requestStr+'%';
        	select *
        	from
        		Abc
        	where
        	        Country like REPLACE(@RequestStr,' ', '%')
        end
        Bạn có thể làm như trên, nó sẽ tìm những cái gần đúng nhất cho bạn.
        Phạm Minh Tâm
        Phone: 01643-652-922
        Skype ID: tampham47@live.com

        Comment


        • #5
          Originally posted by 09520281 View Post
          Mình đã viết như sau:


          Cái này nó chỉ đúng nếu như quốc gia chỉ là một chữ như là: "Mỹ", "Pháp".....còn nếu mà mình nhập Trung Quốc thì không kiểm tra được........hic (2 chữ là nó tìm không được) , giờ ko biết làm sao nữa
          Nhìn thì đoán bạn viết bằng C#:
          đầu tiên bạn dư string quocgia = Convert.ToString(txtQuocGia.Text);textbox.text là kiểu string rồi
          tiếp theo khi dùng kiểu dữ liệu có dấu bạn phải chắc là dùng kiểu có nvarchar hoặc có chữ n trước, khi insert phải có chữ n trước như thế này INSERT INTO MONHOC VALUES (N'" + tbx_mamonhoc.Text + "',N'" + tbx_tenmonhoc.Text + "')", khi truy vấn cũng phải thế SELECT SINHVIEN.TenSV
          FROM HOCKY
          WHERE (SINHVIEN.TenSV = N'nguyễn')

          cuối cùng là trọng tâm câu hỏi của bạn SELECT TenSV
          FROM SINHVIEN
          WHERE TenSV LIKE N'nguyễn%'

          http://w3schools.com/sql/sql_like.asp
          bạn xem rùi tham khảo

          Comment


          • #6
            Bạn dùng "Like" thay "=" xem

            Comment


            • #7
              PHP Code:
              string commandText "SELECT COUNT(*) FROM tblChuongTrinhMoi WHERE QuocGia LIKE N'%" txtQuocGia.Text "%'";

              SqlCommand sqlCommand = new SqlCommand(commandTextsqlConnection);
              int count sqlCommand.ExecuteScalar();

              if (
              count==0)
              {
                     
              // Lưu quốc gia mới
              }
              else
                     
              MessageBox.Show("Quốc gia đã tồn tại, mời bạn nhập quốc gia khác hoặc kết thúc""Thông báo"); 

              Comment


              • #8
                Thanks bạn QuyNam nhé, mình làm được rồi, và mình đính chính lại chút là chỗ
                int count = sqlCommand.ExecuteScalar();
                thì trong C# nó trả về kiểu object nên ta sẽ dùng là
                object obj = sqlCommand.ExecuteScalar();

                if (obj == null)
                {
                // Lưu quốc gia mới
                }
                , thanks anh chị đã quan tâm
                Facebook: Kiều Thắng
                Google Plus: Kiều Thắng
                Thông tin về du học các nước: Du học.

                Comment

                LHQC

                Collapse
                Working...
                X