簡體   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