【发布时间】:2018-01-13 20:29:03
【问题描述】:
我正在使用 Visual Studio 2017,创建了一个 C# .NET Web 服务。我在我的模型中创建了一个函数,我想使用存储过程进行 SQL 插入。问题是我得到了错误:
找不到存储过程“createEmployee”
我必须在其他地方定义过程“createEmployee”吗?代码如下:
public string create()
{
using (SqlConnection mConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString))
{
using (SqlCommand mCommand = new SqlCommand("createEmployee", mConnection))
{
mCommand.CommandType = CommandType.StoredProcedure;
mCommand.Parameters.AddWithValue("@name", Name);
mCommand.Parameters.AddWithValue("@surname", Surname);
mCommand.Parameters.AddWithValue("@phone", Phone);
mCommand.Parameters.AddWithValue("@gender", Gender);
mCommand.Parameters.AddWithValue("@salary", Salary);
mCommand.Parameters.AddWithValue("@country", Country);
try
{
mConnection.Open();
mCommand.ExecuteNonQuery();
return "success";
}
catch (SqlException e)
{
return e.Message.ToString();
}
}
}
}
【问题讨论】:
-
您需要在数据库服务器上创建过程 - 您这样做了吗?
-
@PatrickArtner 这是我的第一个 C# .Net,我对此感到困惑。所以为了这个工作,我是否还必须执行 SQL“创建过程 createEmployee”?
-
我假设您已经在 db 中创建了 Sql 过程,所以不,您不必在 c# 代码中运行任何“创建过程”。也许您需要以某种方式限定名称?这样的“dbo.myDb.CreateEmproee”。这可能取决于连接字符串值
-
Storedprocedure 是写在数据库中的代码块,并从您的程序中调用(正如您尝试做的那样)。您需要使用适当的管理工具(如 Sql Server Management Studio)在数据库上创建存储过程,您甚至可以直接从代码中创建它们。但只有在它们存在于数据库中之后,您才能从代码中调用它们
标签: c# asp.net sql-server stored-procedures