アプリ版:「スタンプのみでお礼する」機能のリリースについて

asp.net から sqlserver のストアドプロシージャを実行させる勉強をしています。

作成されているはずのストアドプロシージャを実行できずに困っています。

webformにテキストボックス、ボタン、データグリッドを貼り付け、ストアドプロシージャを作成し下記のプログラムを実行させるのですが上手くいきません。
(テキストボックスに任意で入力された数値のデータをボタンを押すと表示するものです)

<エラー内容>→ ストアド プロシージャ 'proc1' が見つかりませんでした


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


ストアドproc1(場所:Northwind)の内容↓

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


どなたか原因のわかる方がいれば、宜しくお願いします。

A 回答 (1件)

松本です。


このエラーは、ストアドプロシージャが該当データ
ベース内に存在しない場合に発生しますので、
まずは、proc1 が Northwind データベース内に作成
されているかどうかを確認するとよいと思います。
USE Northwind し忘れて master データベース内に
作ってしまうというのはよくある話です。

Northwind データベース内に proc1 があるかどうか
を確認するには、クエリアナライザまたは osql から
以下実行して

USE Northwind
EXEC sp_help 'proc1'

結果が返ってくれば、正しく作られています。
逆に作られていない場合は次のメッセージが表示されます

「オブジェクト 'proc1' はデータベース 'Northwind'
に存在しません」

あと、接続文字列の中の Initial Catalog=Northwind
または Database=Northwind となっていることも確認
したほうが良いと思います。

あと、cmd.CommandType =  ← が全角空白になって
るのですが、これはコピペ時のミスですよね?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す