Chào các bạn!
Hôm trước mình chạy cấu SQL trên , mình không truyền tham số vào nên thấy nó chạy ok, nhưng hôm nay mình thêm truyền tham số vào nó báo lỗi
Nhờ các bạn xem giúp mình với.
Mình viết trong Procedure Mã: Chọn hết
ALTER Procedure [dbo].[inphieu]
@txtid int
As
DECLARE @SQL AS NVARCHAR(500)
DECLARE @ColSize AS NVARCHAR(500)
SET @ColSize = (SELECT STUFF(
(SELECT DISTINCT ', ' + quotename([SIZE], ']') FROM Q_inphieu_ngang FOR XML PATH('')), 1, 1, ''))
SET @SQL = ' SELECT * FROM
(SELECT id, makhach,tenkhach,diachi,dienthoai,congtienhang,conggiamgia,tienthue,tongcong, mahang,tenhang,dvt,mau,soluong,dongiaban,[size] FROM Q_inphieu_ngang WHERE id = @txtid)s1
PIVOT (
SUM(soluong) FOR [size] IN (' + @ColSize + ')
)s2'
EXECUTE( @SQL)
Rồi text trong SQL nó báo như thế này
Mã: Chọn hết
USE [quanlynoibo_doc]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[inphieu]
@txtid = NULL
SELECT 'Return Value' = @return_value
GO
Nó báo lỗi vậy mình ko biết sửa sao hết, nhờ các bạn chỉ giúp mình với,lần đầu dùng cái Procedure mình không biết.
Còn trong VB.Net mình viết như sau:
Mã: Chọn hết
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Try
Dim adapter As New SqlDataAdapter()
Dim cmd As New SqlCommand("inphieu", connect)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@txtid", Val(360))
adapter.SelectCommand = cmd
Dim dt As New DataTable()
adapter.Fill(dt)
connect.Open()
cmd.ExecuteNonQuery()
connect.Close()
cmd.Dispose()
GridControl1.DataSource = dt
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Nhờ các bạn chỉ giúp mình với.
---------
Mình có thêm 1 vấn đề nữa là :
Khi mình có được cái DataTable dữ liệu trên "adapter.Fill(dt)"
Giờ mình chuyển sang "In Phiếu Giao Hàng"
Nhưng mình gặp vấn đề là Các cột "mã hàng, tên hàng, số lượng, đơn giá, thành tiền nó cố định , nhưng cột size nó động thì là sao in được các bạn nhỉ.
Mình nói lại cho các bạn hiểu ý mình.
Cấu trúc DataTable như sau: mahang, tenhang, soluong, don gia, thanhtien, size35, size36, size37, sizeA, sizeB.....==> cột size là động.
Vậy làm sao in được phiếu giao hàng khi chưa biết trước được số cột size các bạn nhỉ.
Mình nghĩ không ra được giải pháp co vấn đề này. Mong các bạn chỉ giúp mình với.