2017-03-17 5 views
0

Windowsフォームアプリケーションを使用してデータベースにデータを挿入するためのコードがあります。ストアドプロシージャが見つかりません

しかし、私はこのエラー

は、ストアドプロシージャ「sp_insert」

を見つけることができませんでした私は、任意の外部サーバを使用していない取得し、それをローカルデシベル

UPDATEです:それはようでしたストアドプロシージャがないので、作成しようとしましたが、別のエラーがスローされます

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

@SteveOops私は質問を投稿した後にそれを理解しました。今はストアドプロシージャを追加しようとしましたが、エラーが表示されます – Ghezlan

+0

何のエラーが表示されていますか? –

答えて

1

あなたが予約語を使用している:彼らはと共有されるように見えるの用語の使用を避けるようにしてください

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

変更

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

をOSやコーディングしているアプリケーションあなたは頭痛の種を救うでしょう。

2

あなたがdbo.sp_insertをしようとしない理由。

SqlCommand cmd = new SqlCommand("dbo.sp_insert", con); 
関連する問題