ado.netでのストアドプロシージャの実行の方法

解決


saki  2005-05-10 03:34:09  No: 121539

VB.netでADO.NETからストアドプロシージャを実行させる勉強をしています。(sqlserver2000使用)
参考書を見ながらやっているのですが、エラー(下記)がでてしまい原因がわかりません。アドバイスお願いします。
ストアドプロシージャは指定の場所にきちんと作成できています!

下のソースはasp.net上でtextbox1にある数値を入力しボタンをクリックするとその数値に該当する値をもったデータがDBgridに表示されるものです。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim cn As New SqlConnection
    Dim cmd As New SqlCommand

    cn.ConnectionString = "接続文字列"
    cmd.Connection = cn
    cmd.CommandText = "proc1 " & TextBox1.Text

    cmd.CommandType = System.Data.CommandType.StoredProcedure

    Dim p1 As SqlParameter = cmd.Parameters.Add("@param1", System.Data.SqlDbType.Int)

    p1.Value = TextBox1.Text

    cn.Open()

    Dim dr As SqlDataReader = cmd.ExecuteReader
    DataGrid2.DataSource = dr
    DataGrid2.DataBind()
    dr.Close()
    cn.Close()

End Sub

ストアドプロシージャ↓

CREATE procedure proc1
@param1 int
as 
select * from products where categoryID=@param1

エラー表示↓

例外の詳細: System.Data.SqlClient.SqlException: ストアド プロシージャ 'proc1 7' が見つかりませんでした。

ソース エラー: 
行 70:      Dim dr As SqlDataReader = cmd.ExecuteReader

 
スタック トレース: 

[SqlException: ストアド プロシージャ 'proc1 7' が見つかりませんでした。]
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
   System.Data.SqlClient.SqlCommand.ExecuteReader()
   testショッピング2.WebForm1.Button1_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\BUDOU\testショッピング2\Prod.aspx.vb:70
   System.Web.UI.WebControls.Button.OnClick(EventArgs e)
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
   System.Web.UI.Page.ProcessRequestMain() +1277


saki  2005-05-13 23:55:07  No: 121540

この記事の削除はどのようにしたらよいのでしょうか?


特攻隊長まるるう  2005-05-14 00:08:20  No: 121541

削除の必要があるんですか?残しておいてもいいと思いますが?。
他の掲示板で聞く場合などにスレッドを閉じたい場合は、そういった
書き込みをして[解決]マークを付けるなり何なり…まぁ、できれば
移動先をリンクしてリンク先で解決したらトラックバックして欲しい
ですが。
この掲示板での削除は管理人さんにお願いするしかありません。
必要事項(スレッドのタイトル・書き込み日付け・自分のハンドル名・削除依頼する理由)
などを書いたメールを管理人さんに送って下さい。


saki  2005-05-14 00:18:36  No: 121542

すみません。まるるうさんありがとうございます。
削除ボタンが見つからなかったもので・・・
他のDB掲示板がありそこに投稿して、2重投稿?っていうんですか?
それはダメと聞いたので。

解決にしておきます。
詳細わかりしだい解決法をお知らせします!


じゃんぬねっと  URL  2005-05-14 00:38:50  No: 121543

> 2重投稿?っていうんですか?

大抵は「マルチポスト」と言います。
当たり前ですが、回答者の誠意がムダになる場合が多く、
自分勝手だと思われるので禁止してるところが多いんです。

saki さんのように、こうやって報告してくれる人はまだ全然良い方です。
どうやら、掲示板を使われたのは初めてのようですし、これから気をつければ良いと思いますよ。

# マルチポストもせめて、断りがあれば "そこまで" 問題にならないと思うんです。(私の勝手な考え)


特攻隊長まるるう  2005-05-14 00:51:51  No: 121544

[どぼん!のプログラミング道]さんのルールが賛同を得やすい
ルールではないかと思ってます。
[なぜマルチポストがいけないのか?]
http://dobon.net/vb/bbs/index.html#multipost


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加