En utilisant nvarchar (string unicode) pour votre type de paramètre devrait faire l'affaire:
create procedure dbo.spAddName
@name nvarchar(100)
as
insert into tbl_test(name) values(@name)
GO
MISE À JOUR
Apparemment, le problème semble être dans votre code d'appel, pas dans la définition de la procédure stockée qui est ce que les autres essayaient d'aider.
Voici un exemple complet de la façon dont on pourrait appeler la procédure stockée ci-dessus correctement, à la fois de t-sql et de C#.
-- create a test table
create table dbo.tbl_test (
name nvarchar(100) NOT NULL
)
go
-- prove that a simple insert succeeds
insert into dbo.tbl_test (name) values (N'ŞİĞİL')
-- simple select against the unicode column to return the characters verbatim
select name from dbo.tbl_test
-- execute the original stored procedure from t-sql
dbo.spAddName N'ŞİĞİL'
... et maintenant avec C# et ado.net, juste pour fournir un exemple d'invocation à partir du code de l'application. À l'avenir, vous serez plus susceptible de recevoir plus d'aide si vous êtes plus courtois envers ceux qui tentent de vous aider.
Bonne chance!
Le type de la colonne 'name' nvarchar (...) est-il également? – Phil
oui c'est mais en voyant '????' –
où voyez-vous '????' – Phil