2012-09-19 3 views
2

lorsque j'insère un texte dans une table dans le serveur sql, les lignes ne montrent pas le texte et montrent ??????insérer du texte dans la table sql

Je sais avec le code de coup peut corriger:

INSERT [dbo].[TableName] (CityName,latitude,longitude) 
VALUES (N'txt',34,56) 

mais j'utiliser ce code pour insérer:

INSERT INTO [dbo].[TableName] 
VALUES (@CityName,@latitude,@longitude) 

sqlcmd.Parameters.Add("@CityName",SqlDbType.VarChar); 
sqlcmd.Parameters.Add("@latitude", SqlDbType.Int); 
sqlcmd.Parameters.Add("@longitude", SqlDbType.Int); 

Que puis-je faire?

grâce

+1

pourquoi utilisez-vous CityName comme 'Int'? – Champ

+0

Comment se fait sqlcmd.Parameters.Add ("@ CityName", SqlDbType.Int); est Int? –

+0

no. j'ai une erreur c'est varchar – atabrizi

Répondre

5

Essayez d'utiliser SqlDbType.NVarChar comme type pour votre @CityName au lieu de varchar que vous utilisez actuellement.

          \/ 
sqlcmd.Parameters.Add("@CityName", SqlDbType.NVarChar); 

, comme l'indique Prasanna aussi, utiliser

sqlcmd.Parameters.AddWithValue("@CityName", cityName); 

qui fonctionnera probablement sans avoir besoin de spécifier le type, dans votre cas.

+0

je l'utilise. Je modifie ma question. S'il vous plaît lire – atabrizi

+0

@atabrizi Non - vous utilisez VarChar. Cela utilise NVarChar. –

+0

merci. cela fonctionne – atabrizi

0
insert into [dbo].[TableName] 
values(@CityName,@latitude,@longitude) 

sqlcmd.Parameters.Add("@CityName", SqlDbType.Int); <-- CityName (int) :) 
sqlcmd.Parameters.Add("@latitude", SqlDbType.VarChar); 
sqlcmd.Parameters.Add("@longitude", SqlDbType.VarChar); 
0

essayer cette

insert into [dbo].[TableName] 
values(@CityName,@latitude,@longitude) 

// implicit conversion of the value 
sqlcmd.Parameters.AddWithValue("@CityName", 'txt'); 
sqlcmd.Parameters.AddWithValue("@latitude", 34); 
sqlcmd.Parameters.AddWithValue("@longitude", 36); 

OU

sqlcmd.Parameters.Add("@CityName", SqlDbType.VarChar); 
sqlcmd.Parameters.Add("@latitude", SqlDbType.Int); 
sqlcmd.Parameters.Add("@longitude", SqlDbType.Int); 
1

Il devrait être:

sqlcmd.Parameters.Add("@CityName", SqlDbType.VarChar); 

Et pas

sqlcmd.Parameters.Add("@CityName", SqlDbType.Int); 

Mise à jour

utilisation SqlDbType.NVarChar puis

+0

oui. je l'édite. mais ma question n'est pas celle-là. Je ne sais pas comment placer «N» dans le premier code en code 2D – atabrizi

0

Vous types de paramètres non inversé?

Devrait "@CityName" par un SqlDbType.VarChar et l'autre 2 SqlDbType.Int?

1

Utilisez command.Parameters.AddWithValue() au lieu de command.Parameters.Add()

0

S'il vous plaît utiliser VarChar au lieu de int pour insérer un enregistrement dans le tableau ci-dessous, car CityName est pas int:

INSERT INTO [dbo].[TableName] 
VALUES (@CityName,@latitude,@longitude) 

sqlcmd.Parameters.Add("@CityName",SqlDbType.VarChar); 
// Replace of 
sqlcmd.Parameters.Add("@CityName", SqlDbType.Int); 

sqlcmd.Parameters.Add("@latitude", SqlDbType.Int); 
sqlcmd.Parameters.Add("@longitude", SqlDbType.Int); 
0

S'il vous plaît, modifier la chaîne de connexion où UTF-8 est là et le côté de la base de données SQL vous dois déclarer 'nvarchar' au lieu de 'varchar':

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;CharSet=utf8; 
+0

ont une erreur: "mot-clé charset non pris en charge" – atabrizi

Questions connexes