2

当我在 sql server 的表中插入文本时,行没有显示文本并显示??????

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

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

我能做些什么 ?

谢谢

4

8 回答 8

5

尝试使用SqlDbType.NVarCharas type for your@CityName而不是您当前使用的 varchar。

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

此外,就像 Prasanna 建议的那样,使用

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

在您的情况下,这可能无需指定类型即可工作。

于 2012-09-19T08:59:48.977 回答
1

它应该是:

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

并不是

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

更新

SqlDbType.NVarChar然后使用

于 2012-09-19T08:55:32.290 回答
1

使用command.Parameters.AddWithValue()而不是 command.Parameters.Add()

于 2012-09-19T08:59:36.700 回答
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); 
于 2012-09-19T08:54:43.860 回答
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);

或者

sqlcmd.Parameters.Add("@CityName", SqlDbType.VarChar); 
sqlcmd.Parameters.Add("@latitude", SqlDbType.Int);
sqlcmd.Parameters.Add("@longitude", SqlDbType.Int);
于 2012-09-19T08:55:11.807 回答
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);
于 2012-09-19T08:59:57.590 回答
0

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

 Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;CharSet=utf8;
于 2012-09-19T09:05:07.300 回答
0

你的参数类型没有反转吗?

是否应该由 SqlDbType.VarChar 和其他 2 个 SqlDbType.Int 来“@CityName”?

于 2012-09-19T08:57:29.367 回答