السلام عليكم ورحمة الله وبركاته
الحمدلله بعد معاناة في كيفية انشاء تقارير بارسال اكثر من بارميتر من Datagridview الى الاجراء المخزن لاظهار التقرير بمساعدة الاخ الخبير KARIMSOFT
قررت مشاركة الحل معكم املا في الاستفادة من هذا الموضوع
في زر السي شارب سيتم كتابة الامر التالي لارسال الباراميتر IDs
string IDs = ""; DataGridViewRow row = new DataGridViewRow(); for (int i = 0; i < dataGridView1.Rows.Count; i++) { row = dataGridView1.Rows; if (Convert.ToBoolean(row.Cells[0].Value) == true) IDs += row.Cells[1].Value.ToString() + ","; }if(IDs!="") IDs=IDs.SubTring(0,IDs.Length-1)و الدالة مع الاجراء المخزن يكون كالتالي
CREATE FUNCTION dbo.udfSplit ( @RowData nvarchar(2000), @SplitOn nvarchar(5) ) RETURNS @RtnValue table ( Id int identity(1,1), Data nvarchar(100) ) AS BEGIN Declare @Cnt int Set @Cnt = 1 While (Charindex(@SplitOn,@RowData)>0) Begin Insert Into @RtnValue (data) Select Data = ltrim(rtrim(Substring(@RowData,1,Charindex(@SplitOn,@RowData)-1))) Set @RowData = Substring(@RowData,Charindex(@SplitOn,@RowData)+1,len(@RowData)) Set @Cnt = @Cnt + 1 End Insert Into @RtnValue (data) Select Data = ltrim(rtrim(@RowData)) Return END
CREATE PROCEDURE [dbo].[spReport]
@parameter1 VARCHAR(100)
AS
BEGIN
SELECT * from table1 where ID in (select data from dbo.udfSplit(@parameter1,',') )
END