أتوفر على بنية الجدول التالي على برنامج قواعد البيانات Sql Server، وأريد ربط الجدول بتطيق على visual Basic بلغة #C، وأتمكن من إدخال البيانات على الجدول باستعمال SqlDataSource و Parameters.
الجدول:
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)
);
Procedure من أجل استعمال parameters:
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
كود aps.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();
}
لكن الموضوع بأكمله لا يعمل، فهل من توضيح بخصوص هذه التقنية؟