Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建存储过程以将下拉列表的值与数据库中的值相乘_C#_Sql Server_Stored Procedures - Fatal编程技术网

C# 创建存储过程以将下拉列表的值与数据库中的值相乘

C# 创建存储过程以将下拉列表的值与数据库中的值相乘,c#,sql-server,stored-procedures,C#,Sql Server,Stored Procedures,我有一个如下的存储过程:(有一个表,其中有一些列,包括'Ta','Em','Ma','Sa',其中有几个不同的记录) 网页包括一些下拉列表,如下所示: <form id="form1" runat="server"> <asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" >

我有一个如下的存储过程:(有一个表,其中有一些列,包括
'Ta'
'Em'
'Ma'
'Sa'
,其中有几个不同的记录)

网页包括一些下拉列表,如下所示:

<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>
这些代码是有效的,但总是有相同的结果,因为这一部分

添加(“@Tar”,SqlDbType.Int).Value= DropDownList1.SelectedValue

例如,在DP1中有几个值为
8
的选项,如果用户在存储过程中选择任何值,它将与
'@Tar'
相乘,则其他DP的结果相同,因此即使选择不同,结果也始终相同,但是如果用户在
DP1
中选择
'Emk'
,则值8仅与存储过程中的
'@Emk'
相乘,如果在
dp2
中选择
'Mas'
,则与
'@Mas'
相乘。
但我不知道如何在代码中定义它,我们将非常感谢您的帮助

像这样更改存储过程

DECLARE @dp1 varchar (100)
DECLARE @dp2 varchar (100)
DECLARE @dp3 varchar (100)
DECLARE @dp4 varchar (100)

DECLARE @dpp1 int
DECLARE @dpp2 int
DECLARE @dpp3 int
DECLARE @dpp4 int


set @dp1 = 'Emk' >>as example
set @dp2 = 'Mas' >>as example 



if (@dp1= 'Emk')
Begin
set @dpp1= 8 
Select Emk*@dpp1 as val1 FROM Cdetail
End

if (@dp1= 'Tar')
Begin
set @dpp1= 8
Select Tar*@dpp1 as val1 FROM Cdetail
End

if (@dp1= 'San')
Begin
set @dpp1= 8 
Select San*@dpp1 as val1 FROM Cdetail
End

if (@dp1= 'Mas')
Begin
set @dpp1= 8
Select Mas*@dpp1 as val1 FROM Cdetail
End

if (@dp2= 'Emk')
Begin
set @dpp2= 7 
Select Emk*@dpp2 as val2 FROM Cdetail
End

if (@dp2= 'Tar')
Begin
set @dpp2= 7 
Select Tar*@dpp2 as val2 FROM Cdetail
End

if (@dp2= 'San')
Begin
set @dpp2= 7 
Select San*@dpp2 as val2 FROM Cdetail
End

if (@dp2= 'Mas')
Begin
set @dpp2= 7 
Select Mas*@dpp2 as val1 FROM Cdetail
End


SELECT 
Namecar,
(Mas*@dpp1)+(San*@dpp1)+(Tar*@dpp1)+(Emk*@dpp1)+(Mas*@dpp2)+(San*@dpp2)+(Tar*@dpp2)+(Emk*@dpp2)
 as finalresult
FROM Cdetail

请注意,这是一个示例,您需要对其进行改进

DECLARE @dp1 varchar (100)
DECLARE @dp2 varchar (100)
DECLARE @dp3 varchar (100)
DECLARE @dp4 varchar (100)

DECLARE @dpp1 int
DECLARE @dpp2 int
DECLARE @dpp3 int
DECLARE @dpp4 int


set @dp1 = 'Emk' >>as example
set @dp2 = 'Mas' >>as example 



if (@dp1= 'Emk')
Begin
set @dpp1= 8 
Select Emk*@dpp1 as val1 FROM Cdetail
End

if (@dp1= 'Tar')
Begin
set @dpp1= 8
Select Tar*@dpp1 as val1 FROM Cdetail
End

if (@dp1= 'San')
Begin
set @dpp1= 8 
Select San*@dpp1 as val1 FROM Cdetail
End

if (@dp1= 'Mas')
Begin
set @dpp1= 8
Select Mas*@dpp1 as val1 FROM Cdetail
End

if (@dp2= 'Emk')
Begin
set @dpp2= 7 
Select Emk*@dpp2 as val2 FROM Cdetail
End

if (@dp2= 'Tar')
Begin
set @dpp2= 7 
Select Tar*@dpp2 as val2 FROM Cdetail
End

if (@dp2= 'San')
Begin
set @dpp2= 7 
Select San*@dpp2 as val2 FROM Cdetail
End

if (@dp2= 'Mas')
Begin
set @dpp2= 7 
Select Mas*@dpp2 as val1 FROM Cdetail
End


SELECT 
Namecar,
(Mas*@dpp1)+(San*@dpp1)+(Tar*@dpp1)+(Emk*@dpp1)+(Mas*@dpp2)+(San*@dpp2)+(Tar*@dpp2)+(Emk*@dpp2)
 as finalresult
FROM Cdetail
请注意,这是一个示例,您需要改进它

DECLARE @dp1 varchar (100)
DECLARE @dp2 varchar (100)
DECLARE @dp3 varchar (100)
DECLARE @dp4 varchar (100)

DECLARE @dpp1 int
DECLARE @dpp2 int
DECLARE @dpp3 int
DECLARE @dpp4 int


set @dp1 = 'Emk' >>as example
set @dp2 = 'Mas' >>as example 



if (@dp1= 'Emk')
Begin
set @dpp1= 8 
Select Emk*@dpp1 as val1 FROM Cdetail
End

if (@dp1= 'Tar')
Begin
set @dpp1= 8
Select Tar*@dpp1 as val1 FROM Cdetail
End

if (@dp1= 'San')
Begin
set @dpp1= 8 
Select San*@dpp1 as val1 FROM Cdetail
End

if (@dp1= 'Mas')
Begin
set @dpp1= 8
Select Mas*@dpp1 as val1 FROM Cdetail
End

if (@dp2= 'Emk')
Begin
set @dpp2= 7 
Select Emk*@dpp2 as val2 FROM Cdetail
End

if (@dp2= 'Tar')
Begin
set @dpp2= 7 
Select Tar*@dpp2 as val2 FROM Cdetail
End

if (@dp2= 'San')
Begin
set @dpp2= 7 
Select San*@dpp2 as val2 FROM Cdetail
End

if (@dp2= 'Mas')
Begin
set @dpp2= 7 
Select Mas*@dpp2 as val1 FROM Cdetail
End


SELECT 
Namecar,
(Mas*@dpp1)+(San*@dpp1)+(Tar*@dpp1)+(Emk*@dpp1)+(Mas*@dpp2)+(San*@dpp2)+(Tar*@dpp2)+(Emk*@dpp2)
 as finalresult
FROM Cdetail