[英]ASP.NET / C# SqlDataSource commands and parameters based on table
[英]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.