将文本插入sql表

时间:2012-09-19 08:52:14

标签: c# sql sql-server

当我在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);

我该怎么办?

感谢

8 个答案:

答案 0 :(得分:5)

尝试使用SqlDbType.NVarChar作为@CityName的类型,而不是您当前使用的varchar。

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

另外,像Prasanna建议的那样,使用

sqlcmd.Parameters.AddWithValue("@CityName", cityName);
在你的情况下,

可能无需指定类型即可。

答案 1 :(得分:1)

应该是:

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

而不是

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

<强>更新

使用SqlDbType.NVarChar然后

答案 2 :(得分:1)

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

答案 3 :(得分: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); 

答案 4 :(得分: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);

答案 5 :(得分:0)

参数类型是否未反转?

SqlDbType.VarChar应该是“@CityName” 和另外2个SqlDbType.Int?

答案 6 :(得分: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);

答案 7 :(得分:0)

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

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