Get Initial letter Using SQL

Eg: CompanyName

Abc

Def

Pqr

This will highlight only that character which contains data in our case it will highlight A, D & P.

you need to create an SP for that and will look like that

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[proc_GetInitialInPopup]
@mode AS varchar(10),
@UserID AS int,
@condition AS varchar(10)
AS
BEGIN
SET NOCOUNT ON;

DECLARE @Letters AS varchar(MAX)
DECLARE @counter AS INT
DECLARE @cnt AS INT
DECLARE @Table Table(
Value VARCHAR(1),
ContainsRec BIT
)

SET @Letters='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
SET @counter=0
WHILE @counter <= DATALENGTH(@Letters)
BEGIN
SELECT @cnt=COUNT(*)
FROM tblCompany
WHERE CompanyName LIKE CONVERT(varchar(2), SUBSTRING(@Letters,@counter,1) + '%')
AND tblCompany.[AssignedTo] = @UserID AND IsActive = 1

IF SUBSTRING(@Letters,@counter,1) ''
BEGIN
IF @cnt > 0
BEGIN
INSERT INTO @Table(Value, ContainsRec) VALUES (SUBSTRING(@Letters,@counter,1), 1)
END
ELSE
BEGIN
INSERT INTO @Table(Value, ContainsRec) VALUES (SUBSTRING(@Letters,@counter,1), 0)
END
END
SET @counter=@counter+1

END

SELECT * FROM @Table
END

In code behind you need to write following code

foreach (DataRow dr in highlightAlpha.Rows)
{
if (cnt >= 10)
{
if (dr.ItemArray[1].ToString() == "True")
{
string createdIDforLink = "LinkButton" + dr.ItemArray[0].ToString();
LinkButton cntrlId = Page.FindControl(createdIDforLink) as LinkButton;
cntrlId.CssClass = "actRec";
cntrlId.Enabled = true;
}
else
{
string createdIDforLink = "LinkButton" + dr.ItemArray[0].ToString();
LinkButton cntrlId = Page.FindControl(createdIDforLink) as LinkButton;
cntrlId.CssClass = "actNonRec";
cntrlId.Enabled = false;
}
}
cnt++;
}

Leave a comment