当我尝试更新表格的数据时,我收到错误
找不到存储过程
怎么了?
SQL:
CREATE PROCEDURE GetContactName
@Name char(20),
@SecondName char(20) output
as
SELECT @SecondName = [Second Name]
FROM WPF.dbo.contacts
WHERE Name = @Name
C#:
sqlConnection.Open();
SqlCommand cmd = new SqlCommand("GetContactName", sqlConnection);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter param = new SqlParameter();
param.ParameterName = "@Name";
param.SqlDbType = SqlDbType.Char;
param.Direction = ParameterDirection.Input;
cmd.Parameters.Add(param);
param = new SqlParameter();
param.ParameterName = "@SecondName";
param.SqlDbType = SqlDbType.Char;
param.Size = 20;
param.Direction = ParameterDirection.Output;
cmd.Parameters.Add(param);
cmd.ExecuteNonQuery();
sqlConnection.Close();
EDIT1
我正在使用VS13和SQL Server 2008 Management Studio。
我找不到存储过程,但是当我执行SQL代码时,它说该过程已经存在。
连接字符串:
Data Source=HOME;Initial Catalog=WPF;Integrated Security=True
WPF
dbo.contacts
答案 0 :(得分:1)
这是数据库架构的问题。检查连接字符串中使用的用户标识的默认架构是否与SP的架构匹配。
答案 1 :(得分:1)
只需在查询上方添加USE YourdataBaseName后跟GO。
**USE YourdataBaseName
Go**
CREATE PROCEDURE GetContactName
@Name char(20),
@SecondName char(20) output
as
SELECT @SecondName = [Second Name]
FROM WPF.dbo.contacts
WHERE Name = @Name
C#:
答案 2 :(得分:0)
出于某种原因,当您使用 sql-query 创建过程时,它不会显示在“存储过程”文件夹中。但是,如果您通过从“存储过程”文件夹中的上下文菜单中选择适当的选项来创建过程,则会显示该过程并且一切正常。