C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: 「スカラ変数を宣言してください」のエラー


(過去ログ 50 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■27423 / inTopicNo.1)  「スカラ変数を宣言してください」のエラー
  
□投稿者/ 素人 (1回)-(2008/11/05(Wed) 16:45:54)

分類:[C#] 

2008/11/06(Thu) 09:13:56 編集(投稿者)

☆VisualStudio2005
☆C#

public bool Insert(string a, string b, string c)
{
string SQL = @"
INSERT INTO [DB].[dbo].[AB_CMaster]
([A]
,[B]
,[C])
VALUES
(@A
,@B
,@C)";

lock (typeof(Dao))
{

using (SqlExConnection ExCon = DaoManager.ExOpen())
{
using (SqlCommand cmd = new SqlCommand(SQL, ExCon.Connection))
{
cmd.Parameters.Add("@A", System.Data.SqlDbType.VarChar, 2);
cmd.Parameters["@A"].Direction = System.Data.ParameterDirection.Input;

cmd.Parameters.Add("@B", System.Data.SqlDbType.VarChar, 10);
cmd.Parameters["@B"].Direction = System.Data.ParameterDirection.Input;

cmd.Parameters.Add("@C", System.Data.SqlDbType.VarChar, 10);
cmd.Parameters["@C"].Direction = System.Data.ParameterDirection.ReturnValue;

cmd.Parameters["@A"].Value = a;
cmd.Parameters["@B"].Value = b;
cmd.Parameters["@C"].Value = c;

cmd.ExecuteNonQuery();
}

}
}

このような感じでコードを書いているのですが、なぜか「スカラ変数"@C"を宣言してください」とのエラーが出ます。。
宣言していることになっていないのでしょうか?どなたか教えてください(:△;)
引用返信 編集キー/
■27424 / inTopicNo.2)  Re[1]: 「スカラ変数を宣言してください」のエラー
□投稿者/ 魔界の仮面弁士 (888回)-(2008/11/05(Wed) 16:49:05)
No27423 (素人 さん) に返信
> cmd.Parameters["@A"].Direction = System.Data.ParameterDirection.Input;
> cmd.Parameters["@B"].Direction = System.Data.ParameterDirection.Input;
> cmd.Parameters["@C"].Direction = System.Data.ParameterDirection.ReturnValue;

@C が戻り値として指定されていますが、これはあえてそうしているのでしょうか?
引用返信 編集キー/
■27427 / inTopicNo.3)  Re[2]: 「スカラ変数を宣言してください」のエラー
□投稿者/ 素人 (2回)-(2008/11/05(Wed) 17:05:41)
No27424 (魔界の仮面弁士 さん) に返信
> ■No27423 (素人 さん) に返信
>>cmd.Parameters["@A"].Direction = System.Data.ParameterDirection.Input;
>>cmd.Parameters["@B"].Direction = System.Data.ParameterDirection.Input;
>>cmd.Parameters["@C"].Direction = System.Data.ParameterDirection.ReturnValue;
>
> @C が戻り値として指定されていますが、これはあえてそうしているのでしょうか?

実は、元あったものをコピペして使っているのでよく分からずに使ってます。。
この部分がまずいのでしょうか?
私がやりたいのは、「csvファイルから読み込んだものを、DBに入れる」ことなのですが('_';)
すいませんど素人なもんで…汗;
引用返信 編集キー/
■27436 / inTopicNo.4)  Re[3]: 「スカラ変数を宣言してください」のエラー
□投稿者/ やじゅ (763回)-(2008/11/05(Wed) 19:53:25)
やじゅ さんの Web サイト
2008/11/05(Wed) 19:58:50 編集(投稿者)
2008/11/05(Wed) 19:57:22 編集(投稿者)

No27427 (素人 さん) に返信

>cmd.Parameters["@C"].Direction = System.Data.ParameterDirection.ReturnValue;

cmd.Parameters["@C"].Direction = System.Data.ParameterDirection.Input;

ReturnValueは、戻り値用ですので、Inputにしないと駄目です。

>cmd.Parameters["@Id"].Value = a;
>cmd.Parameters["@Name"].Value = b;
>cmd.Parameters["@ShortName"].Value = c;

@Id→@A @Name→@B @ShortName→@C  にもしないと値が入りませんね。
単純に投稿用にする上での書き換えミスっぽいですけど。
引用返信 編集キー/
■27450 / inTopicNo.5)  Re[4]: 「スカラ変数を宣言してください」のエラー
□投稿者/ 素人 (3回)-(2008/11/06(Thu) 09:13:29)
2008/11/06(Thu) 09:14:46 編集(投稿者)
No27436 (やじゅ さん) に返信
> 2008/11/05(Wed) 19:58:50 編集(投稿者)
> 2008/11/05(Wed) 19:57:22 編集(投稿者)
>
> ■No27427 (素人 さん) に返信
>
> >cmd.Parameters["@C"].Direction = System.Data.ParameterDirection.ReturnValue;
> ↓
> cmd.Parameters["@C"].Direction = System.Data.ParameterDirection.Input;
>
> ReturnValueは、戻り値用ですので、Inputにしないと駄目です。
>

なるほど〜。単純なミスだったんですね。。

> >cmd.Parameters["@Id"].Value = a;
> >cmd.Parameters["@Name"].Value = b;
> >cmd.Parameters["@ShortName"].Value = c;
>
> @Id→@A @Name→@B @ShortName→@C  にもしないと値が入りませんね。
> 単純に投稿用にする上での書き換えミスっぽいですけど。

すいません編集ミスです。^^;
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -