繁体   English   中英

如何在ASP.NET中使用SqlDataSource和Parameters插入表中?

[英]How to insert into a table using SqlDataSource & Parameters in ASP.NET?

我在尝试获取一些代码来工作时遇到了麻烦。 我有一个ASP.NET站点,该站点设置为当用户选择两个值并单击一个按钮时更新数据库。 然后, SqlDataSource应该执行一个存储过程,该过程会将两个值和当前用户的UserName插入数据库中。

但是由于某种原因,我只是无法使其正常工作。 没有标志弹出,但是数据库似乎没有接收到任何数据。 希望任何人都可以提供帮助,以下是相关代码:

我的桌子:

CREATE TABLE [dbo].[Prescriptions] 
(
    [Prescription_ID]  INT           IDENTITY (1, 1) NOT NULL,
    [Doctor_UserName]  NVARCHAR (50) NOT NULL,
    [Patient_UserName] NVARCHAR (50) NOT NULL,
    [Drug_ID]          INT           NOT NULL,
    PRIMARY KEY CLUSTERED ([Prescription_ID] ASC)
);

存储过程:

CREATE PROCEDURE [dbo].[AddPrescription]
    @doctor nvarchar(50),
    @patient nvarchar(50),
    @drug nvarchar(MAX)
AS
    INSERT INTO dbo.Prescriptions (Doctor_UserName, Patient_UserName, Drug_ID)
        SELECT @doctor, @patient, d.Drug_ID
        FROM dbo.Drug AS d
        WHERE d.Trade_Name = @drug

Asp.Net代码:

<asp:SqlDataSource ID="SqlDataSource3" runat="server" 
     ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" 
     SelectCommand="AddPrescription" SelectCommandType="StoredProcedure">
     <SelectParameters>
        <asp:Parameter Name="doctor" Type="String" />
        <asp:ControlParameter ControlID="PatientDropDown" Name="patient" 
             PropertyName="SelectedValue" Type="String" />
        <asp:ControlParameter ControlID="PrescriptionDropDown" Name="drug" 
             PropertyName="SelectedValue" Type="String" />
     </SelectParameters>
</asp:SqlDataSource>

按钮后面的代码:

protected void CreatePrescriptionBtn_Click(object sender, EventArgs e)
{
    SqlDataSource3.SelectParameters["doctor"].DefaultValue = System.Web.HttpContext.Current.User.Identity.Name.ToString();
    SqlDataSource3.DataBind();
}

重建您的SQL数据源,选择“指定自定义SQL语句或存储过程”

您应该进入以下屏幕: 在此处输入图片说明

这是一个大概的粗略简单示例:

   <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:pubsConnectionString %>"
             SelectCommand="SELECT [ID], [CustomerName], [Population] FROM [TestTable]"
             InsertCommand="byroyalty" InsertCommandType="StoredProcedure">
            <InsertParameters>
                <asp:Parameter Name="percentage" Type="Int32" />
            </InsertParameters>
        </asp:SqlDataSource>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM