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

現在使用しているvarcharの代わりに、SqlDbType.NVarCharタイプとして使用してみてください。@CityName

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

また、プラザンナが示唆するように、

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

あなたの場合、これはおそらくタイプを指定する必要なしに機能するでしょう。

于 2012-09-19T08:59:48.977 に答える
1

command.Parameters.Add()の代わりにcommand.Parameters.AddWithValue( )を使用します

于 2012-09-19T08:59:36.700 に答える
1

そのはず:

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

そしてではない

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

アップデート

SqlDbType.NVarCharその後使用

于 2012-09-19T08:55:32.290 に答える
0

以下の表にレコードを挿入するVarChar代わりにを使用してください。これは:ではないためです。intCityNameint

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

パラメータタイプが逆になっていないですか?

SqlDbType.VarCharと他の2つのSqlDbType.Intで「@CityName」を使用する必要がありますか?

于 2012-09-19T08:57:29.367 に答える
0

UTF-8が存在する接続文字列を編集してください。SQLデータベース側では、「varchar」ではなく「nvarchar」を宣言する必要があります。

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