ich eine gespeicherte Prozedur wie folgt aufweisen: (und gibt es eine Tabelle mit einigen Spalten enthalten 'Ta'
, 'Em'
, 'Ma'
, 'Sa'
mit mehreren verschiedenen Datensätze)eine gespeicherte procudure Erstellen Werte von Dropdown-Liste zu multiplizieren mit den Werten in der Datenbank
ALTER PROCEDURE [dbo].[Cstored]
(
@Tar int,
@Emk int,
@Mas int,
@San int
)
AS
BEGIN
SET NOCOUNT ON;
SELECT
Namecar,
Ta*@Tar AS val1,
Em*@Emk as val2,
Ma*@Mas as val3,
Sa*@San As val4,
(Ta*@Tar)+(Em*@Emk)+(Ma*@Mas)+(San*@San) as finalresult
FROM Cdetail
END
und eine Web-Seite enthalten einige Drop-Down-Liste wie folgt:
<form id="form1" runat="server">
<asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" >
<asp:ListItem Value="8">Emk</asp:ListItem>
<asp:ListItem Value="8">Tar</asp:ListItem>
<asp:ListItem Value="8">San</asp:ListItem>
<asp:ListItem Value="8">Mas</asp:ListItem>
</asp:DropDownList>
<br />
<asp:DropDownList ID="DropDownList2" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Value="7">Emk</asp:ListItem>
<asp:ListItem Value="7">Tar</asp:ListItem>
<asp:ListItem Value="7">San</asp:ListItem>
<asp:ListItem Value="7">Mas</asp:ListItem>
</asp:DropDownList>
<br />
<asp:DropDownList ID="DropDownList3" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Value="6">Emk</asp:ListItem>
<asp:ListItem Value="6">Tar</asp:ListItem>
<asp:ListItem Value="6">San</asp:ListItem>
<asp:ListItem Value="6">Mas</asp:ListItem>
</asp:DropDownList>
<br />
<asp:DropDownList ID="DropDownList4" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Value="6">Emk</asp:ListItem>
<asp:ListItem Value="6">Tar</asp:ListItem>
<asp:ListItem Value="6">San</asp:ListItem>
<asp:ListItem Value="6">Mas</asp:ListItem>
</asp:DropDownList>
<br />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
<br />
<br />
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</form>
und folgenden Code hinter:
protected void Button1_Click(object sender, EventArgs e)
{
DataTable dt;
string conStr = ConfigurationManager.ConnectionStrings["cConnectionString"].ConnectionString;
using (var sqlCon = new SqlConnection(conStr))
{
sqlCon.Open();
using (var scCommand = new SqlCommand("Cstored", sqlCon))
{
scCommand.CommandType = CommandType.StoredProcedure;
scCommand.Parameters.Add("@Tar", SqlDbType.Int).Value = DropDownList1.SelectedValue;
scCommand.Parameters.Add("@Emk", SqlDbType.Int).Value = DropDownList2.SelectedValue;
scCommand.Parameters.Add("@Mas", SqlDbType.Int).Value = DropDownList3.SelectedValue;
scCommand.Parameters.Add("@San", SqlDbType.Int).Value = DropDownList4.SelectedValue;
using (SqlDataAdapter sda = new SqlDataAdapter(scCommand))
{
dt = new DataTable();
sda.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
}
diese Code funktioniert, aber immer mit dem gleichen Ergebnis, da dieser Teil
scCommand.Parameters.Add ("@ Tar", SqlDbType.Int) .Value = DropDownList1.SelectedValue;
zum Beispiel in DP1 gibt es mehrere Wahl mit dem Wert 8
und wenn der Benutzer etwas wählen Sie ihn mit '@Tar'
in Stored Procedure multipliziert wird, ist es auch für andere DP, weil es das Ergebnis gleich ist immer noch mit unterschiedlichen Auswahl, aber ich möchte, wenn Benutzer wählen 'Emk'
in DP1
den Wert 8 nur multiplizieren mit '@Emk'
in gespeicherten Prozedur und wenn 'Mas'
in DP 2
, multipliziert mit '@Mas'
. aber ich weiß nicht, wie kann ich es in Codes definieren, würde Ihre Hilfe geschätzt werden.