INSERT 存储过程有效,但从方法调用时未插入数据?

我正在尝试将数据插入我的表中。我创建了一个存储过程来执行此操作。我还创建了一个调用存储过程的方法。当我点击提交按钮时,点击事件被触发,我获取输入数据并调用方法插入到表中。


我没有收到任何错误,但是当我签入数据库时,尚未插入数据。


我试过手动执行存储过程,它确实有效。


这是我的存储过程:


CREATE PROCEDURE [dbo].AddRestaurant

    @theName VARCHAR(250),

    @theAddr VARCHAR(350), 

    @theCity VARCHAR(50),

    @theState VARCHAR(2),

    @theZip VARCHAR(5),

    @theCategory INT

AS

BEGIN

    INSERT INTO Restaurants (RestName, RestAddr, RestCity, RestState, RestZip, CategoryID)

    VALUES (@theName, @theAddr, @theCity, @theState, @theZip, @theCategory)

END

这是我的表结构:


CREATE TABLE [dbo].[Restaurants] 

(

    [RestaurantID] INT IDENTITY (1, 1) NOT NULL,

    [RestName]     VARCHAR(250) NULL,

    [RestAddr]     VARCHAR(350) NULL,

    [RestCity]     VARCHAR(50)  NULL,

    [RestState]    VARCHAR(2)   NULL,

    [RestZip]      VARCHAR(5)   NULL,

    [CategoryID]   INT          NULL,


    PRIMARY KEY CLUSTERED ([RestaurantID] ASC),


    CONSTRAINT [FK_Restaurants_CatergoryID] 

        FOREIGN KEY ([CategoryID]) 

        REFERENCES [dbo].[Categories] ([CategoryID])

);

这是我的方法:


public void AddRestaurant(string name, string addr, string city, string state, string zip, int category)

{

    DBConnect objDB = new DBConnect();


    objCmd.Parameters.Clear();

    objCmd.CommandType = CommandType.StoredProcedure;

    objCmd.CommandText = "AddRestaurant";


    objCmd.Parameters.AddWithValue("@theName", name);

    objCmd.Parameters.AddWithValue("@theAddr", addr);

    objCmd.Parameters.AddWithValue("@theCity", city);

    objCmd.Parameters.AddWithValue("@theState", state);

    objCmd.Parameters.AddWithValue("@theZip", zip);

    objCmd.Parameters.AddWithValue("@theCategory", category);


    objDB.GetConnection().Open();

    objDB.DoUpdateUsingCmdObj(objCmd);

    int affectedRows = objDB.DoUpdateUsingCmdObj(objCmd);

    objDB.CloseConnection();

}


慕容森
浏览 177回答 1
1回答

桃花长相依

我发现了我的错误。我打开了两次连接。objDB.GetConnection().Open();将其更改为:objDB.GetConnection();
打开App,查看更多内容
随时随地看视频慕课网APP