Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi hoanganhcuong87
    Mình có câu lệnh
    SELECT * FROM ABC WHERE abc IN('1','2','3','4')
    Mình muốn viết Procedure truyền vào cái chuỗi trong IN kia.
    Chuỗi của mình là string truyền vào không chạy, đã thử string.ToCharArray() cũng không được. các bạn giúp mình với!
    Mã:
    CREATE PROCEDURE sp_ABC   @param_one nvarchar(1)   @param_two nvarchar(1)   @param_three nvarchar(1)   @param_four nvarchar(1)AS   SELECT *    FROM ABC   WHERE abc IN(@param_one, @param_two, @param_three , @param_four )
    Trong code C#:

    Mã:
    string storeProcedure = "sp_ABC @param_one = '{0}', @param_two = '{1}', @param_three = '{2}', @param_four = '{3}'";objCommand.CommandText = string.Format(storeProcedure, value1, value2, value3, value4);objCommand.ExecuteNonQuery();
    Mình chỉ code ý tưởng, bạn xem tham khảo nhé.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi vanthuong420
    Mã:
    CREATE PROCEDURE sp_ABC
    Mã:
    <div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">   @param_four nvarchar(1)AS   SELECT *    FROM ABC   WHERE abc IN(@param_one, @param_two, @param_three , @param_four )
    Trong code C#:

    Mã:
    string storeProcedure = "sp_ABC @param_one = '{0}', @param_two = '{1}', @param_three = '{2}', @param_four = '{3}'";objCommand.CommandText = string.Format(storeProcedure, value1, value2, value3, value4);objCommand.ExecuteNonQuery();
    Mình chỉ code ý tưởng, bạn xem tham khảo nhé.</div>

    </div>
    </div>
    </div>Vấn đề là chuỗi string của mình chưa xác định có bao nhiêu param mà mình chỉ biết là nó ngăn cách nhau bằng dấu " " thôi bạn ahj. Dù sao cũng cảm ơn! ko thấy nút thanks ở đâu cả?

  4. #4
    Ngày tham gia
    Sep 2015
    Đang ở
    Hà Nội
    Bài viết
    0
    Trích dẫn Gửi bởi dunghp
    IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[IN_ABC]') AND type in (N'P', N'PC'))
    DROP PROCEDURE [dbo].[IN_ABC]
    GO

    CREATE PROCEDURE [dbo].[IN_ABC]
    @INSTR nvarchar(2000)
    AS
    BEGIN
    declare @SqlString nvarchar(500)
    set @SqlString = N'SELECT * FROM ABC WHERE Id IN('+@INSTR+')'

    EXEC(@SqlString)

    END

    GO

    -parameter bạn truyền vào là ở dạng chuỗi cách nhau bởi dấu "," vd: "1,2,3,4" (hoặc "'a','b','c','d'")
    -Test thử bằng lệnh :
    exec [IN_ABC] '1,2,3,4'
    Cảm ơn nhiều! Còn code trong C# thì sao hả bạn? ( Đây là trong SQL)

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Code trong c# chỉ là cộng chuỗi thôi mà bác. Dùng exec là sql động, bác vào đây luyện thêm tý tâm pháp http://www.sqlviet.com/blog/sql-dong [IMG]images/smilies/biggrin.png[/IMG]

 

 

Quyền viết bài

  • 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ể Sửa bài viết của mình
  •