2012-09-19 67 views
2

当我插入文本到SQL Server中的表,行没有显示文本和显示??????将文本插入SQL表

我知道与打击代码可以纠正:

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

,但我用这个代码插入:

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); 

我可以做什么?

感谢

+1

为什么你使用CityName作为'Int'? – Champ

+0

为什么sqlcmd.Parameters.Add( “@ CITYNAME”,SqlDbType.Int);是Int? –

+0

没有。我有一个错误,它为varchar – atabrizi

回答

5

尝试使用SqlDbType.NVarChar类型为您@CityName,而不是您目前使用VARCHAR。

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

此外,像人员Prasanna表明,使用

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

这将无需指定类型,你的情况可能工作。

+0

我使用它。我编辑我的问题。请阅读 – atabrizi

+0

@atabrizi否 - 您使用VarChar。这使用NVarChar。 –

+0

谢谢。它的工作原理 – 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

试试这个

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); 

OR

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

它应该是:

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

和不

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

更新

使用SqlDbType.NVarChar然后

+0

是的。我编辑它。但我的问题不是这样。我不知道如何在第一个代码中使用'N'代码 – atabrizi

0

你的参数类型不反转?

应通过SqlDbType.VarChar 和其他2 SqlDbType.Int“@CityName”吗?

1

使用command.Parameters.AddWithValue()代替command.Parameters.Add()

0

请插入一条记录到下表中使用VarChar代替int,因为CityName不是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

请编辑您的连接字符串中的UTF-8是存在的,SQL数据库端,你必须声明'nvarchar'而不是'varchar':

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

有错误:“不支持关键字字符集” – atabrizi