Store your selected checkbox value in string:-
I am using Telerik RadGrid, you can modify it by your GridView.
string strMappedUser = "";
foreach (GridDataItem gdt in gridUsers.MasterTableView.Items)
{
CheckBox chb = (CheckBox)gdt.FindControl("cbSelectUser");
if (chb.Checked == true)
{
if (strMappedUser == "")
strMappedUser = Convert.ToString(gdt.GetDataKeyValue("UserId"));
else
strMappedUser = strMappedUser + "," + Convert.ToString(gdt.GetDataKeyValue("UserId"));
}
}
Now in Database Use this :-
CREATE PROCEDURE Sp_Example (
@aintUserId VARCHAR(500) = ''
)
AS
BEGIN
CREATE TABLE #tempTable (
Id INT
,UsID VARCHAR(50)
)
INSERT INTO #tempTable (
id
,UsID
)
SELECT Row AS ID
,Value AS SetValue
FROM dbo.fn_SplitForOrdering(@aintUserId, ',')
INSERT INTO t_YourTable (UserId)
SELECT UsID
FROM #tempTable
DROP TABLE #tempTable
END
here is the function used for returning a varchar rowset from a delimited string
CREATE FUNCTION dbo.fn_SplitForOrdering (
@InputText VARCHAR(4000)
,@Delimiter VARCHAR(10)
)
RETURNS @Array TABLE (
Row INT
,Value VARCHAR(4000)
)
AS
BEGIN
DECLARE @Pos INT
DECLARE @End INT
DECLARE @TextLength INT
DECLARE @DelimLength INT
DECLARE @Row INT
SET @TextLength = DataLength(@InputText)
IF @TextLength = 0
RETURN
SET @Pos = 1
SET @DelimLength = DataLength(@Delimiter)
SET @Row = 1
IF @DelimLength = 0
BEGIN
WHILE @Pos <= @TextLength
BEGIN
INSERT @Array (
Row
,Value
)
VALUES (
@Row
,SubString(@InputText, @Pos, 1)
)
SET @Pos = @Pos + 1
SET @Row = @Row + 1
END
END
ELSE
BEGIN
SET @InputText = @InputText + @Delimiter
SET @End = CharIndex(@Delimiter, @InputText)
WHILE @End > 0
BEGIN
INSERT @Array (
Row
,Value
)
VALUES (
@Row
,SubString(@InputText, @Pos, @End - @Pos)
)
SET @Pos = @End + @DelimLength
SET @End = CharIndex(@Delimiter, @InputText, @Pos)
SET @Row = @Row + 1
END
END
RETURN
END
Hope you will get it.
Good luck.