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

Đề tài: Lệnh select trong StoreProcedure dùng bằng C#

  1. #1
    Ngày gia nhập
    06 2007
    Bài viết
    21

    Mặc định Lệnh select trong StoreProcedure dùng bằng C#

    Mình đã tìm kiếm trong diễn đàn mấy lần không thấy ai nói về vấn đề mình đang gặp.
    Đây là đoạn trong Store Procedure
    Code:
    CREATE PROCEDURE usp_hienthiquantri
    	@dangnhap varchar(20)='%',
    	@hoten nvarchar(50)='%'
     AS
    if (@dangnhap<>'')
    Begin
    select dangnhap,hoten,quyen as admin from quantri where dangnhap LIKE @dangnhap
    end
    if (@hoten<>'')
    begin
    select dangnhap,hoten,quyen as admin from quantri where hoten LIKE @hoten
    end
    if (@hoten='' and @dangnhap='')
    Begin
    select dangnhap,hoten,quyen as admin from quantri
    end
    GO
    Và đây là đoạn code trong C# có liên quan đến Store này
    Code:
    public DataTable hienthiquantritheodangnhap(string dieukien)
            {
                try
                {
                    objCmd = new SqlCommand("usp_hienthiquantri", Conn);
                    objCmd.CommandType = CommandType.StoredProcedure;
                    objCmd.Parameters.Add("@dangnhap", SqlDbType.VarChar).Value = dieukien;
                    objCmd.Parameters.Add("@hoten", SqlDbType.NVarChar).Value = "";
                    SqlDataAdapter sds = new SqlDataAdapter(objCmd);
                    DataSet ds = new DataSet();
                    sds.Fill(ds, "aTable");
                    return ds.Tables["aTable"];
                }
                catch (SqlException sqlex)
                {
                    throw sqlex;
                }
                finally
                {
                    objCmd.Dispose();
                }
            }
    Vấn đề mình gặp ở đây là, mình muốn hiển thị ra thì phải gõ chính xác thì mới ra, và như vậy nó không thực hiện được chức năng tìm kiếm.
    Thân
    Devil 2 Angel
    Con đường hạnh phúc của mỗi người là khác nhau.

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

    Vấn đề là câu SQL của bạn sai. Bạn dùng like mà không có '_' hoặc '%' thì làm sao mà nó hiểu được.

    Cheers!
    Is the moon rising...

  3. #3
    Ngày gia nhập
    02 2009
    Bài viết
    121

    Uhm đúng rồi ;
    đơn giản như thế này đê:
    Code:
    select <fields> From <table> where field like '<cần tìm> %'

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

    Cám ơn 2 bạn đã đọc, nhưng đây là mình viết bằng store procedure. Ví dụ như thêm thì không cần phải có dấu ' để định dạng nó là kiểu gì.
    Ai biết giúp mình với
    Con đường hạnh phúc của mỗi người là khác nhau.

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

    Bạn đã học sql chưa?
    Bạn có biết like clause yêu cầu gì không? Bạn có hiểu bản chất của cái store procedure là gì không?

    Tôi nói thẳng cho bạn biết là cái store của bạn với 1 câu select bình thường có truyền parameter chả khác gì nhau.

    Bạn dùng like clause mà không có wild character thì nó không khác gì với '=' nên kết quả của bạn nó ra thế là đúng thôi. Tôi khuyên bạn nên đọc lại cái like clause của sql rồi hãy thắc mắc.
    Is the moon rising...

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

    Mặc định Lệnh select trong StoreProcedure dùng bằng C#

    Trích dẫn Nguyên bản được gửi bởi darkan Xem bài viết
    Bạn đã học sql chưa?
    Bạn có biết like clause yêu cầu gì không? Bạn có hiểu bản chất của cái store procedure là gì không?

    Tôi nói thẳng cho bạn biết là cái store của bạn với 1 câu select bình thường có truyền parameter chả khác gì nhau.

    Bạn dùng like clause mà không có wild character thì nó không khác gì với '=' nên kết quả của bạn nó ra thế là đúng thôi. Tôi khuyên bạn nên đọc lại cái like clause của sql rồi hãy thắc mắc.
    Nếu là like bình thường chỉ là viết bằng SQL query thì mình làm nhiều rồi, nhưng mình thấy thằng store có vẻ khác sao ý, ví dụ như nếu thêm có Unicode thì phải là N'Nôi dung' nhưng thằng store thì không cần, và kể cái LIKE này cũng thế, mình seach trên msdn.com và đã có thay đổi là @hoten nvarchar(50) ='%' thực sự không hiểu nó để làm gì. Ngoài ra còn có thêm là 'H%' và nhiều cái khác nữa.
    Ai đã làm nhiều về store có thể giúp mình được không
    Cám ơn các bạn đã đọc qua
    Đã được chỉnh sửa lần cuối bởi devil0604 : 15-04-2009 lúc 12:14 AM. Lý do: Sửa lại câu từ
    Con đường hạnh phúc của mỗi người là khác nhau.

  7. #7
    Ngày gia nhập
    06 2007
    Bài viết
    21

    Hihi, nhờ 1 MOD trong diễn đàn hướng dẫn mình đã làm được, hóa ra chỉ cần sửa lại là
    Code:
    objCmd.Parameters.Add("@dangnhap", SqlDbType.VarChar).Value = "%" + dieukien + "%";
    Cám ơn ZCoder87
    Con đường hạnh phúc của mỗi người là khác nhau.

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

  1. ADO.NET [Winform C#] Dùng StoreProcedure Insert và trả về khóa chính
    Gửi bởi huynhthoaianh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 18-01-2013, 01:30 PM
  2. Dùng Microsoft.Win32.OpenFilDialog để select folder
    Gửi bởi an.cse09 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 5
    Bài viết cuối: 07-07-2012, 06:41 PM
  3. Database Dùng lệnh select làm biến tính toán
    Gửi bởi vanbom trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 13-03-2012, 04:47 PM
  4. Return giá trị trong StoreProcedure như thế nào?
    Gửi bởi MrViet trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 8
    Bài viết cuối: 02-01-2012, 08:42 PM
  5. Hiện thông báo lỗi từ StoreProcedure trong SQL ra winform
    Gửi bởi nhatnghe_thuong trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 01-05-2011, 10:25 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