2017-03-17 47 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);