에 삽입되었습니다. 억양에 문제가 있습니다 (예 : é, à, è, etc.). SQL Server 2008 관리에 직접 삽입했을 때 INSERT INTO LETTRE_VOIT (LIB_PORT) VALUES ('Payé')
잘 작동합니다. 하지만 C#에서이 구문을로드하면 작동하지 않습니다.억양이 SQL
try
{
using (var connectionWrapper = new Connexion())
{
var connectedConnection = connectionWrapper.GetConnected();
string sql_Syntax = Outils.LoadFileToString(HttpContext.Current.Server.MapPath("~/SQL/UpdateEtClotureList.sql"));
SqlCommand comm_Command = new SqlCommand(sql_Syntax, connectionWrapper.conn);
comm_Command.Parameters.AddWithValue("@CHAUFFEUR", CHAUFFEUR);
comm_Command.Parameters.AddWithValue("@Trans", ClotList);
string IdOrdre = "";
SqlDataReader readerOne = comm_Command.ExecuteReader();
while (readerOne.Read())
{
if (IdOrdre != "") IdOrdre += ",";
IdOrdre += readerOne["NO_ORDRE"].ToString();
}
return IdOrdre;
}
}
catch (Exception excThrown)
{
throw new Exception(excThrown.Message);
}
UpdateEtClotureList.sql의 내용 :
DECLARE @AfterUpdate table (
NO_ORDRE_Temp int NOT NULL,
CODE_DEST_Temp varchar(10) NOT NULL,
DATE_CLOTUR_Temp datetime NOT NULL,
CODE_CLIENT_Temp varchar(20) NOT NULL,
MODAL_MODE_Temp char(1) NOT NULL,
MODAL_PORT_Temp bit NOT NULL,
LIVRS_EXPRS_Temp bit NOT NULL,
ENLEV_UNITE_Temp int NOT NULL,
NBR_COLIS_Temp int NOT NULL,
POID_Temp decimal(10, 2) NOT NULL,
ENLEV_CREMB_Temp decimal(10, 2) NULL,
ENLEV_DECL_Temp decimal(10, 2) NULL
)
UPDATE ORDRE
SET STATUT_ORDRE = 2, DATE_CLOTUR = GETDATE(), CHAUFFEUR = @CHAUFFEUR
OUTPUT inserted.NO_ORDRE, inserted.CODE_DEST, inserted.DATE_CLOTUR, inserted.CODE_CLIENT, inserted.MODAL_MODE, inserted.MODAL_PORT,inserted.LIVRS_EXPRS,inserted.ENLEV_UNITE, inserted.NBR_COLIS,inserted.POID,inserted.ENLEV_CREMB,inserted.ENLEV_DECL INTO @AfterUpdate
WHERE STATUT_ORDRE = 1 AND (TRANSPORTEUR IN (SELECT ParsedString From dbo.ParseStringList(@Trans)))
INSERT INTO LETTRE_VOIT
OUTPUT inserted.NO_ORDRE
select rsVoit.NOID, NO_ORDRE_Temp, rsOrdre.CODE_DEST_Temp,rsOrdre.DATE_CLOTUR_Temp, rsOrdre.CODE_CLIENT_Temp, rsOrdre.MODAL_MODE_Temp, rsOrdre.MODAL_PORT_Temp,
CASE rsOrdre.MODAL_PORT_Temp
WHEN 'false' THEN 'Payé'
ELSE 'Du'
END,
rsOrdre.LIVRS_EXPRS_Temp,
CASE rsOrdre.LIVRS_EXPRS_Temp
WHEN 'false' THEN 'Long'
ELSE 'Express'
END,
rsOrdre.ENLEV_UNITE_Temp, LIBELLE, NBR_COLIS_Temp,POID_Temp,ENLEV_CREMB_Temp,ENLEV_DECL_Temp
from @AfterUpdate rsOrdre
inner join
(
select CODE_DEST,MODAL_MODE, MODAL_PORT, LIVRS_EXPRS,ENLEV_UNITE, ROW_NUMBER() over (order by CODE_DEST) as NOID
from ORDRE
group by CODE_DEST,MODAL_MODE,MODAL_PORT,LIVRS_EXPRS,ENLEV_UNITE
) rsVoit on rsVoit.CODE_DEST = rsOrdre.CODE_DEST_Temp and rsVoit.MODAL_MODE = rsOrdre.MODAL_MODE_Temp
and rsVoit.MODAL_PORT = rsOrdre.MODAL_PORT_Temp and rsVoit.LIVRS_EXPRS = rsOrdre.LIVRS_EXPRS_Temp
and rsVoit.ENLEV_UNITE = rsOrdre.ENLEV_UNITE_Temp
LEFT JOIN T_UNITE ON rsOrdre.ENLEV_UNITE_Temp = T_UNITE.NOID
order by rsVoit.NOID, NO_ORDRE_Temp
결과 대신 PAYE의 지불 * 인은, * 사각형 기호입니다.
미리 감사드립니다.
PS : 나는
내가 구문을 변경하면 대신 VARCHAR 타입의 NVARCHAR를 사용
....
CASE rsOrdre.MODAL_PORT_Temp
WHEN 'false' THEN N'Payé'
ELSE 'Du'
END,
rsOrdre.LIVRS_EXPRS_Temp,
.....
내가 가지고 :
을하고 난 SQL 프로파일 러를 통해 볼 때 : 를
(귀하의 열이 이미 nvarchar로 편집되었으므로 이전 질문이 문제 였을 것으로 생각합니다. 답변으로 게시했습니다.) – Bridge
글꼴 문제 일 수 있습니까? 그리드가 아닌 텍스트를 선택하면 é이 보입니까? – podiluska
무엇 [조합] (http : //blog.sqlauthority.com/2007/08/30/sql-server-2005-find-database-collation-t-sql-and-ssms /) SQL 인스턴스에 대해 설정 했습니까? –