Я создаю обзор данных со столбцом Unicode, например:
private void GetUnicodeFormat()
{
string unicodeString = "\u2605";
OneStar = unicodeString;
TwoStar = unicodeString + unicodeString;
ThreeStar = unicodeString + unicodeString + unicodeString;
FourStar = unicodeString + unicodeString + unicodeString + unicodeString;
FiveStar = unicodeString + unicodeString + unicodeString + unicodeString + unicodeString;
}
Затем я установил его в datagridview, как:
foreach (DataGridViewRow row in dgvProjectRanking.Rows)
{
var cellNumberValue = int.Parse(row.Cells[contractedColumnIndex].Value.ToString());
if (cellNumberValue <= 20)
{
row.Cells[scoreColumnIndex].Value = OneStar;
}
else if (cellNumberValue > 20 && cellNumberValue < 40)
{
row.Cells[scoreColumnIndex].Value = TwoStar;
}
else if (cellNumberValue >= 40 && cellNumberValue < 60)
{
row.Cells[scoreColumnIndex].Value = ThreeStar;
}
else if (cellNumberValue >= 60 && cellNumberValue < 80)
{
row.Cells[scoreColumnIndex].Value = FourStar;
}
else if (cellNumberValue >= 80 && cellNumberValue <= 100)
{
row.Cells[scoreColumnIndex].Value = FiveStar;
}
}
Это работает, я получаю звезды в DataGridView. Но теперь вместо этого я хочу отправить значения через SQL, поэтому я создаю функцию в sql:
CREATE FUNCTION [HELPER].[udf_ProjectContractedPercentage_Set]
(
@ProjectContractedPercentage INT
)
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @NewProjectContractedPercentage VARCHAR(MAX)
,@StarUnicode VARCHAR(10) = '\u2605';
SELECT
@NewProjectContractedPercentage = (CASE
WHEN @ProjectContractedPercentage <= 20
THEN @StarUnicode
WHEN @ProjectContractedPercentage > 20
AND @ProjectContractedPercentage < 40
THEN CONCAT(@StarUnicode , @StarUnicode)
WHEN @ProjectContractedPercentage >= 40
AND @ProjectContractedPercentage < 60
THEN CONCAT(@StarUnicode , @StarUnicode , @StarUnicode)
WHEN @ProjectContractedPercentage >= 60
AND @ProjectContractedPercentage < 80
THEN CONCAT(@StarUnicode , @StarUnicode , @StarUnicode , @StarUnicode )
WHEN @ProjectContractedPercentage >= 80
AND @ProjectContractedPercentage <= 100
THEN CONCAT(@StarUnicode , @StarUnicode , @StarUnicode , @StarUnicode , @StarUnicode)
END)
RETURN
@NewProjectContractedPercentage
END
Итак, я получаю такие значения, как:
Что мне нужно сделать в c # для преобразования этого значения в звезды? Я не знаю, в чем разница, если у меня есть значение Юникода в коде c # или получение из хранимой процедуры. Я думаю, что это точно так же, но не работает, поэтому я понятия не имею, почему бы и нет. Помощь очень ценится!