2017-03-17 77 views
0

我使用Windows窗体应用程序将数据插入到数据库的代码。存储过程没有发现

但我得到这个错误

未能找到存储过程“sp_insert”

我没有使用任何外部服务器,这是一个本地数据库

更新:它似乎是我没有一个存储过程,所以我试图创建一个,但它抛出另一个错误

CREATE PROCEDURE sp_insert 
    @UserName varchar(20), 
    @Password varchar(18), 
    @Email varchar(50), 
    @Name varchar(20), 
    @Surname varchar(20) 
AS 
    -- here the error occurs "error near syntax" but User is my table name 
    -- and it's correct I don't know what is the problem is 
    INSERT INTO User (UserName, Password, Email, Name, Surname) 
    VALUES (@UserName, @Password, @Email, @Name, @Surname) 

C#代码:

SqlConnection con = new SqlConnection(@"Data Source= (LocalDB)\v11.0;AttachDbFilename=D:\TaxiBooking\TaxiBooking\TaxiBooking\Registraion.mdf;Integrated Security=True;"); 

SqlCommand cmd = new SqlCommand("sp_insert", con); 
cmd.CommandType = CommandType.StoredProcedure; 

cmd.Parameters.AddWithValue("@UserName",txtUser.Text); 
cmd.Parameters.AddWithValue("@Password", txtPassword.Text); 
cmd.Parameters.AddWithValue("@Email", txtEmail.Text); 
cmd.Parameters.AddWithValue("@Name", txtName.Text); 
cmd.Parameters.AddWithValue("@Surname", txtSurname.Text); 

con.Open(); 
cmd.ExecuteNonQuery(); 
+0

的错误似乎很明显,你不觉得吗?你在那个数据库中有这个名字的存储过程吗?作为一个侧面说明,命名存储过程与以sp_前缀被认为是错误的,因为你可以在争端中取得与系统存储过程的名称 – Steve

+0

@Steve哎呀我理解了它后,我张贴的问题。现在我试图添加一个存储过程,但它显示一个错误 – Ghezlan

+0

你正在得到什么错误? –

回答

1

您使用的是保留字:

变化

INSERT INTO User(UserName,Password,Email,Name,Surname) 

INSERT INTO [User](UserName,Password,Email,Name,Surname) 

尽量避免使用而言,看上去就像他们将与共享您正在编码的操作系统或应用程序。你会为自己节省一些头痛。

2

你为什么不尝试dbo.sp_insert。

SqlCommand cmd = new SqlCommand("dbo.sp_insert", con);