Avatar billede kkaen Nybegynder
14. marts 2006 - 13:19 Der er 16 kommentarer og
1 løsning

Kodeangivet værdi ind i sql

Jeg arbejder i Visual Studio 2005, og laver sql'er igennem de automatiserede værktøjer deri. Men når jeg nu har lavet en sql, som skal sammenligne med en værdi (som godt nok også kommer fra databasen), hvordan får jeg så den sat ind?
Jeg har forsøgt med at vælge feltet, som der skal checkes op mod, hvor jeg bare har sat den til: "værdi=udtræk". Dette fungerer også fint nok, når jeg tester den inde i Visual Studio 2005. Men hvis jeg tester hele siden gennem Visual Studio 2005, så giver den en fejl af typen: "IErrorInfo.GetDescription mislykkedes med E_FAIL(0x80004005). ".  Hvordan kan man så sætte en variabel ind i en sql?

(
variablen er et id-felt, som også udtrækkes fra databasen. Så bliver der kørt nogle flere sql'er, hvor der kun skal laves udtræk fra de rows, hvor id=det førudtrukne id.
)
Avatar billede dr_chaos Nybegynder
14. marts 2006 - 17:08 #1
hvordan ser din kode ud ?
Avatar billede kkaen Nybegynder
15. marts 2006 - 08:53 #2
Et af tilfældene ser sådan ud:

SELECT DISTINCT F_Year
FROM        T_Period
WHERE    F_Id = @ ([Session] ["Id"].toString())

Men den løsning fungerede ikke. Idéen er, at der skal laves et opslag på årstal (F_Year) udfra personen med det pågældende id (F_Id), som er blevet kendt, da personen loggede ind i systemet.
Avatar billede dr_chaos Nybegynder
15. marts 2006 - 08:58 #3
paste lige hele din sides kode.
Hvor forsøger du at afvikle denne sql ?
Avatar billede kkaen Nybegynder
15. marts 2006 - 09:03 #4
html:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="TurStatistikMaster.master.cs" Inherits="TurStatistikMaster" EnableViewState="true"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body style="font-size: 12pt; background-color: #ccffff;">
    <form id="form1" runat="server">
    <div>
        <table border="0" style="width: 100%">
            <tr>
                <td colspan=10 style="text-align: center">
                    <strong><span style="font-size: 14pt">
                    Statistik over ture</span></strong></td>
            </tr>
            <tr>
                <td style="height: 21px">
                  År:
                </td>
                <td style="height: 21px">
                  Statistiktype:
                </td>
                <td style="height: 21px">
                  Fra:</td>
                <td style="height: 21px">
                  Til:</td>
                <td colspan=1 style="height: 21px">
                </td>
            </tr>
            <tr>
                <td style="width: 100px; height: 24px;">
                  <asp:DropDownList ID="DropDownList4" runat="server" DataSourceID="Period"
                    DataTextField="F_Year" DataValueField="F_Year" OnSelectedIndexChanged="DropDownList4_SelectedIndexChanged"
                    Width="100px">
                  </asp:DropDownList>
                  <asp:AccessDataSource ID="Period" runat="server" DataFile="~/App_Data/LøbeDatabase.mdb"
                    SelectCommand='SELECT DISTINCT F_Year FROM T_Period WHERE F_Id=@(Session["Id"].toString())'>
                  </asp:AccessDataSource>
                  <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/LøbeDatabase.mdb"
                    SelectCommand="SELECT * FROM [T_Period]"></asp:AccessDataSource>
                </td>
                <td>
                  &nbsp;<asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" DataSourceID="AccessDataSource2" DataTextField="F_Type" DataValueField="F_Type">
                    <asp:ListItem Value="1">Uge</asp:ListItem>
                    <asp:ListItem Value="2">M&#229;ned</asp:ListItem>
                  </asp:DropDownList>
                  <asp:AccessDataSource ID="AccessDataSource2" runat="server" DataFile="~/App_Data/LøbeDatabase.mdb"
                    SelectCommand="SELECT DISTINCT F_Type FROM T_Period"></asp:AccessDataSource>
                </td>
                <td style="width: 100px; height: 24px;">
                  <asp:DropDownList ID="DropDownList2" runat="server" OnSelectedIndexChanged="DropDownList2_SelectedIndexChanged" DataSourceID="AccessDataSource3" DataTextField="F_Start" DataValueField="F_Start">
                  </asp:DropDownList>&nbsp;<br />
                  <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="DropDownList2"
                    ErrorMessage="*">Vælg starttidspunkt</asp:RequiredFieldValidator><asp:AccessDataSource ID="AccessDataSource3" runat="server" DataFile="~/App_Data/LøbeDatabase.mdb"
                    SelectCommand="SELECT [F_Start] FROM [T_Period] WHERE ([F_Id] = ?)">
                      <SelectParameters>
                        <asp:FormParameter FormField="id" Name="F_Id" Type="Int32" />
                      </SelectParameters>
                    </asp:AccessDataSource>
                </td>
                <td style="width: 100px; height: 24px;">
                  <asp:DropDownList ID="DropDownList3" runat="server" DataSourceID="AccessDataSource4" DataTextField="F_End" DataValueField="F_End">
                  </asp:DropDownList>&nbsp;<br />
                  <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="DropDownList3"
                    ErrorMessage="*">Vælg starttidspunkt</asp:RequiredFieldValidator>
                  <asp:AccessDataSource ID="AccessDataSource4" runat="server" DataFile="~/App_Data/LøbeDatabase.mdb"
                    SelectCommand="SELECT [F_End] FROM [T_Period]"></asp:AccessDataSource>
                </td>
                <td colspan=1 style="width: 157px; height: 24px;">
                  <asp:ValidationSummary ID="ValidationSummary1" runat="server" Height="14px" Width="168px" />
                  <asp:Button ID="Vis" runat="server" OnClick="Vis_Click" Text="Vis" />
                    </td>
            </tr>
        </table>
    </div>
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
        </asp:contentplaceholder>
    </form>
</body>
</html>

Codebehind er der ingen kode i.
Avatar billede dr_chaos Nybegynder
15. marts 2006 - 09:51 #5
prøv med
<asp:AccessDataSource ID="Period" runat="server" DataFile="~/App_Data/LøbeDatabase.mdb"
                    SelectCommand='SELECT DISTINCT F_Year FROM [T_Period] WHERE F_Id=[@ID]'>
                    <SelectParameters>
                    <asp:SessionParameter SessionField="Id" Name="ID"  />
                    </SelectParameters>
                  </asp:AccessDataSource>
Avatar billede kkaen Nybegynder
15. marts 2006 - 11:52 #6
Kan man bare sætte den kodestump ind i koden uden videre? For der findes jo ikke nogen <asp:AccessDataSource> i forvejen....
Avatar billede dr_chaos Nybegynder
15. marts 2006 - 12:31 #7
Du har jo allerede
<asp:AccessDataSource ID="Period" runat="server" DataFile="~/App_Data/LøbeDatabase.mdb"
                    SelectCommand='SELECT DISTINCT F_Year FROM T_Period WHERE F_Id=@(Session["Id"].toString())'>
                  </asp:AccessDataSource>
den skal du erstatte med
<asp:AccessDataSource ID="Period" runat="server" DataFile="~/App_Data/LøbeDatabase.mdb"
                    SelectCommand='SELECT DISTINCT F_Year FROM [T_Period] WHERE F_Id=[@ID]'>
                    <SelectParameters>
                    <asp:SessionParameter SessionField="Id" Name="ID"  />
                    </SelectParameters>
                  </asp:AccessDataSource>
Avatar billede kkaen Nybegynder
15. marts 2006 - 13:13 #8
Den kan jeg altså ikke se nogle steder. Jeg arbejder jo i vs2005. Her er min kode fra masterfilen (da funktioanlitten er i masterfilen, går jeg også udfra, at koden skal sættes ind her):

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="AdministratorTurStatistikMaster.master.cs" Inherits="TurStatistikMaster" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body style="font-size: 12pt; background-color: #ccffff;">
    <form id="form1" runat="server">
    <div style="background-color: #ccffff">
    <!-- indsat manuelt -->
    <asp:AccessDataSource ID="Period" runat="server" DataFile="~/App_Data/LøbeDatabase.mdb"
        SelectCommand='SELECT DISTINCT F_Year FROM [T_Period] WHERE F_Id=[@ID]'>
        <SelectParameters>
        <asp:SessionParameter SessionField="Id" Name="ID"  />
        </SelectParameters>
    </asp:AccessDataSource>
    <!-- hertil indsat-->
        <table border="0" style="width: 100%">
            <tr>
                <td colspan=10 style="text-align: center">
                    <strong><span style="font-size: 14pt">
                    Statistik over ture</span></strong></td>
            </tr>
            <tr>
                <td colspan=2>
                    <b>Opret profil:
                      <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Opret" /></b></td>
                <td colspan=2>
                    <b>Rediger profil:</b>
                  <asp:TextBox ID="TextBox1" runat="server">Skriv profil-ID'et</asp:TextBox>
                  <asp:Button ID="RedigerButton" runat="server" OnClick="RedigerButton_Click" Text="Rediger" /></td>
                <td colspan=2>
                    <b>Slet profil:
                      <asp:TextBox ID="TextBox2" runat="server">Skriv profil-ID'et</asp:TextBox>
                      <asp:Button ID="SletButton" runat="server" Text="Slet" /></b></td>
            </tr>
        </table>
    </div>
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
        </asp:contentplaceholder>
    <table>
        <tr>
            <td colspan=10 style="text-align: center">
                <strong><span style="font-size: 14pt">
                    Statistik over ture</span></strong>
            </td>
        </tr>
        <tr>
            <td colspan=6>
                Samlet distance og tid opdelt på aldersgruppe
            </td>
            <td colspan=2>
                Samlet distance og tid for mænd
            </td>
            <td colspan=2>
                Samlet distance og tid for kvinder
            </td>
        </tr>
        <tr>
            <td style="height: 24px">
              10-19 årige
            </td>
            <td style="height: 24px">
              20-29 årige
            </td>
            <td style="height: 24px">
              30-39 årige
            </td>
            <td style="height: 24px">
              40-49 årige
            </td>
            <td style="height: 24px;">
              50-59 årige
            </td>
            <td style="height: 24px">
              60-69 årige
            </td>
            <td style="height: 24px; width: 10%">
                Distance
            </td>
            <td style="height: 24px; width: 10%">
                Tid
            </td>
            <td style="height: 24px; width: 10%">
                Distance
            </td>
            <td style="height: 24px; width: 10%">
                Tid
            </td>
        </tr>
    </table>
        <asp:contentplaceholder id="ContentPlaceHolder2" runat="server">
        </asp:contentplaceholder>
    </form>
</body>
</html>
Avatar billede dr_chaos Nybegynder
15. marts 2006 - 16:44 #9
hvad var det for en side du gav mig kl 09:03:02 ?
Der er der adskellige datasources i koden ?
Avatar billede kkaen Nybegynder
16. marts 2006 - 08:53 #10
Hmm...det var vist mig, der var lidt for hurtig. Men koden lignede dog. Her er den rigtige:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="TurStatistikMaster.master.cs" Inherits="TurStatistikMaster" EnableViewState="true"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body style="font-size: 12pt; background-color: #ccffff;">
    <form id="form1" runat="server">
    <div>
        <table border="0" style="width: 100%">
            <tr>
                <td colspan=10 style="text-align: center">
                    <strong><span style="font-size: 14pt">
                    Statistik over ture</span></strong></td>
            </tr>
            <tr>
                <td style="height: 21px">
                  År:
                </td>
                <td style="height: 21px">
                  Statistiktype:
                </td>
                <td style="height: 21px">
                  Fra:</td>
                <td style="height: 21px">
                  Til:</td>
                <td colspan=1 style="height: 21px">
                </td>
            </tr>
            <tr>
                <td style="width: 100px; height: 24px;">
                  <asp:DropDownList ID="DropDownList4" runat="server" DataSourceID="Period"
                    DataTextField="F_Year" DataValueField="F_Year" OnSelectedIndexChanged="DropDownList4_SelectedIndexChanged"
                    Width="100px">
                  </asp:DropDownList>
                      <!-- indsat manuelt -->
    <asp:AccessDataSource ID="Period" runat="server" DataFile="~/App_Data/LøbeDatabase.mdb"
        SelectCommand='SELECT DISTINCT F_Year FROM [T_Period] WHERE F_Id=[@ID]'>
        <SelectParameters>
        <asp:SessionParameter SessionField="Id" Name="ID"  />
        </SelectParameters>
    </asp:AccessDataSource>
    <!-- hertil indsat-->
                <!--
                  <asp:AccessDataSource ID="Period2" runat="server" DataFile="~/App_Data/LøbeDatabase.mdb"
                    SelectCommand='SELECT [F_Year] FROM [T_Period]'>
                  </asp:AccessDataSource>
-->                </td>
                <td>
                  &nbsp;<asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" DataSourceID="AccessDataSource2" DataTextField="F_Type" DataValueField="F_Type">
                    <asp:ListItem Value="1">Uge</asp:ListItem>
                    <asp:ListItem Value="2">M&#229;ned</asp:ListItem>
                  </asp:DropDownList>
                  <asp:AccessDataSource ID="AccessDataSource2" runat="server" DataFile="~/App_Data/LøbeDatabase.mdb"
                    SelectCommand="SELECT DISTINCT F_Type FROM T_Period"></asp:AccessDataSource>
                </td>
                <td style="width: 100px; height: 24px;">
                  <asp:DropDownList ID="DropDownList2" runat="server" OnSelectedIndexChanged="DropDownList2_SelectedIndexChanged" DataSourceID="AccessDataSource3" DataTextField="F_Start" DataValueField="F_Start">
                  </asp:DropDownList>&nbsp;<br />
                  <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="DropDownList2"
                    ErrorMessage="*">Vælg starttidspunkt</asp:RequiredFieldValidator><asp:AccessDataSource ID="AccessDataSource3" runat="server" DataFile="~/App_Data/LøbeDatabase.mdb"
                    SelectCommand="SELECT [F_Start] FROM [T_Period] WHERE ([F_Id] = ?)">
                      <SelectParameters>
                        <asp:FormParameter FormField="id" Name="F_Id" Type="Int32" />
                      </SelectParameters>
                    </asp:AccessDataSource>
                </td>
                <td style="width: 100px; height: 24px;">
                  <asp:DropDownList ID="DropDownList3" runat="server" DataSourceID="AccessDataSource4" DataTextField="F_End" DataValueField="F_End">
                  </asp:DropDownList>&nbsp;<br />
                  <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="DropDownList3"
                    ErrorMessage="*">Vælg starttidspunkt</asp:RequiredFieldValidator>
                  <asp:AccessDataSource ID="AccessDataSource4" runat="server" DataFile="~/App_Data/LøbeDatabase.mdb"
                    SelectCommand="SELECT [F_End] FROM [T_Period]"></asp:AccessDataSource>
                </td>
                <td colspan=1 style="width: 157px; height: 24px;">
                  <asp:ValidationSummary ID="ValidationSummary1" runat="server" Height="14px" Width="168px" />
                  <asp:Button ID="Vis" runat="server" OnClick="Vis_Click" Text="Vis" />
                    </td>
            </tr>
        </table>
    </div>
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
        </asp:contentplaceholder>
    </form>
</body>
</html>

Og ja, der bruges adskillige datasources.
Når jeg kører siden, så er der ikke nogle værdier i dropdownboxen. 'Id' angives i codebehind til den side, som implementerer masterpagen.
Avatar billede dr_chaos Nybegynder
16. marts 2006 - 08:55 #11
sættes id ikke i en session ?
Avatar billede kkaen Nybegynder
16. marts 2006 - 09:13 #12
Yes, nu virker det vist. Jeg skulle lige sikre, at værdien sættes i Sessionen, og at SessionState=true.
Avatar billede dr_chaos Nybegynder
16. marts 2006 - 09:59 #13
jamen så smider jeg et svar :)
Avatar billede kkaen Nybegynder
16. marts 2006 - 10:03 #14
Kan det passe, at man ikke kan sætte SeesionState=true i masterpage'n? Og i såfald: hvorfor ikke?
Avatar billede dr_chaos Nybegynder
16. marts 2006 - 10:05 #15
Det er muligt at man ikke kan det.
du kan sætte
<sessionState mode="InProc" timeout="30" />
I web.config
Avatar billede kkaen Nybegynder
16. marts 2006 - 10:49 #16
Sådan kunne man jo også klare det. Hvad betyder "InProc", og hvad kan man sætte i stedet samt betydning for disse?
Avatar billede dr_chaos Nybegynder
16. marts 2006 - 13:41 #17
InProc betyder med inproccess og det betyder at session gemmes i processen typisk aspnet brugeren.
De kan også gemmes i sqlserver og et andet sted som jeg ikke kan huske
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester