Avatar billede wildthing Nybegynder
30. marts 2006 - 09:26 Der er 16 kommentarer og
1 løsning

Edit fungerer ikke hvis der findes en null værdi i en kolonne

Det er sikkert besvaret før, men jeg har ikke kunnet finde fejlen ved en hurtig søgning på eksperten, så her er vel nogle hurtige point til en hurtig hjælper.

Jeg har en tabel i en accessDB hvor en af kolonnerne ikke altid er udfyldt med en værdi (altså er Null). Når jeg i mit udviklings værktøj Visual Web Developer 2005 Express Edition så laver et simpelt kald hvor jeg  klikker af, at jeg genre vil kunne editere i linien, ja så opdaterer den ikke recorden, HVIS det netop er en record hvor pågældende kolonne er værdien NUll. Det virker OK hvis der bare er en værdi i feltet i forvejen.

Hvad gør jeg galt. Feltet vil ikke altid være udfyldt, men jeg vil jo gerne kunne udfylde det med f.eks. edtit/update funktionen.

Wildthing
Avatar billede dr_chaos Nybegynder
30. marts 2006 - 17:00 #1
du kan sætte en default værdi til et mellemrum
Avatar billede wildthing Nybegynder
30. marts 2006 - 20:41 #2
Ja du mener i accessDB i designview, ikk? Jeg har ikke kunnet finde noget Visual studio til at håndtere det.


Er i mellemtiden nok blevet enig med mig selv om at skifte til SQL server.
Avatar billede dr_chaos Nybegynder
31. marts 2006 - 08:12 #3
ok
Avatar billede wildthing Nybegynder
31. marts 2006 - 08:40 #4
Dr Chaos:
Hov, jeg kunne misforstås. Jeg vil gerne give point til dig, men ville gerne forstå din løsning, da jeg i access "default value" ikke blot kan lægge et mellemrum ind. Det hjælper ikke, så jeg er nysgerrig efter hvad du mente.

HVis du vil forklare og smide et svar skal jeg nok give dig point.
Avatar billede dr_chaos Nybegynder
31. marts 2006 - 08:51 #5
Jeg troede man i access kunne angive en tom standard værdi.
Men det kan jeg godt se at det kan man ikke.
Hvordan forsøgte du at opdatere i databasen ?
altså hvilken kontrol brugte du f.eks. gridview.
Avatar billede wildthing Nybegynder
31. marts 2006 - 09:07 #6
Jeg laver blot et alm. gridview hvor jeg henter alt i tabellen. Klikker af at jeg vil editere. Jeg kan så fint rette i alle records hvor alle værdier er fyldt ud, men så nsart en record ikke er udfyldt i databasen kan jeg intet rette i denne record? I asp rettede man jo bare de felter man havde behov for?!? Det er textfelter som datatype. Jeg får ingen fejl, der sker bare ikke noget?!?
Avatar billede dr_chaos Nybegynder
31. marts 2006 - 09:11 #7
prøv lige at paste din kode for gridview og accessdatasource.
Avatar billede dr_chaos Nybegynder
31. marts 2006 - 09:12 #8
nej bare for hele aspx siden
Avatar billede wildthing Nybegynder
31. marts 2006 - 09:47 #9
<%@ Page Language="VB" %>

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

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>alt på en side</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        &nbsp;&nbsp;&nbsp;
        <asp:AccessDataSource ID="AccessDataSource1" runat="server" ConflictDetection="CompareAllValues"
            DataFile="~/App_Data/ProductDB.mdb" DeleteCommand="DELETE FROM [Main] WHERE [ID] = ? AND [ProductGroup] = ? AND [ProductDescription] = ? AND [Responsable] = ? AND [LifeTimeStatus] = ? AND [LastEdit] = ? AND [PriceList] = ? AND [Signal] = ? AND [Version] = ? AND [CaseIPU] = ?"
            InsertCommand="INSERT INTO [Main] ([ID], [ProductGroup], [ProductDescription], [Responsable], [LifeTimeStatus], [LastEdit], [PriceList], [Signal], [Version], [CaseIPU]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
            OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [Main]"
            UpdateCommand="UPDATE [Main] SET [ProductGroup] = ?, [ProductDescription] = ?, [Responsable] = ?, [LifeTimeStatus] = ?, [LastEdit] = ?, [PriceList] = ?, [Signal] = ?, [Version] = ?, [CaseIPU] = ? WHERE [ID] = ? AND [ProductGroup] = ? AND [ProductDescription] = ? AND [Responsable] = ? AND [LifeTimeStatus] = ? AND [LastEdit] = ? AND [PriceList] = ? AND [Signal] = ? AND [Version] = ? AND [CaseIPU] = ?">
            <DeleteParameters>
                <asp:Parameter Name="original_ID" Type="String" />
                <asp:Parameter Name="original_ProductGroup" Type="String" />
                <asp:Parameter Name="original_ProductDescription" Type="String" />
                <asp:Parameter Name="original_Responsable" Type="String" />
                <asp:Parameter Name="original_LifeTimeStatus" Type="String" />
                <asp:Parameter Name="original_LastEdit" Type="DateTime" />
                <asp:Parameter Name="original_PriceList" Type="Boolean" />
                <asp:Parameter Name="original_Signal" Type="String" />
                <asp:Parameter Name="original_Version" Type="String" />
                <asp:Parameter Name="original_CaseIPU" Type="Int32" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="ProductGroup" Type="String" />
                <asp:Parameter Name="ProductDescription" Type="String" />
                <asp:Parameter Name="Responsable" Type="String" />
                <asp:Parameter Name="LifeTimeStatus" Type="String" />
                <asp:Parameter Name="LastEdit" Type="DateTime" />
                <asp:Parameter Name="PriceList" Type="Boolean" />
                <asp:Parameter Name="Signal" Type="String" />
                <asp:Parameter Name="Version" Type="String" />
                <asp:Parameter Name="CaseIPU" Type="Int32" />
                <asp:Parameter Name="original_ID" Type="String" />
                <asp:Parameter Name="original_ProductGroup" Type="String" />
                <asp:Parameter Name="original_ProductDescription" Type="String" />
                <asp:Parameter Name="original_Responsable" Type="String" />
                <asp:Parameter Name="original_LifeTimeStatus" Type="String" />
                <asp:Parameter Name="original_LastEdit" Type="DateTime" />
                <asp:Parameter Name="original_PriceList" Type="Boolean" />
                <asp:Parameter Name="original_Signal" Type="String" />
                <asp:Parameter Name="original_Version" Type="String" />
                <asp:Parameter Name="original_CaseIPU" Type="Int32" />
            </UpdateParameters>
            <InsertParameters>
                <asp:Parameter Name="ID" Type="String" />
                <asp:Parameter Name="ProductGroup" Type="String" />
                <asp:Parameter Name="ProductDescription" Type="String" />
                <asp:Parameter Name="Responsable" Type="String" />
                <asp:Parameter Name="LifeTimeStatus" Type="String" />
                <asp:Parameter Name="LastEdit" Type="DateTime" />
                <asp:Parameter Name="PriceList" Type="Boolean" />
                <asp:Parameter Name="Signal" Type="String" />
                <asp:Parameter Name="Version" Type="String" />
                <asp:Parameter Name="CaseIPU" Type="Int32" />
            </InsertParameters>
        </asp:AccessDataSource>
        <asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True" AutoGenerateRows="False"
            CellPadding="4" DataKeyNames="ID" DataSourceID="AccessDataSource1" ForeColor="#333333"
            GridLines="None" Height="50px" Style="z-index: 100; left: 0px; position: absolute;
            top: 0px" Width="684px">
            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <CommandRowStyle BackColor="#D1DDF1" Font-Bold="True" />
            <EditRowStyle BackColor="#2461BF" />
            <RowStyle BackColor="#EFF3FB" />
            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
            <Fields>
                <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" />
                <asp:BoundField DataField="ProductGroup" HeaderText="ProductGroup" SortExpression="ProductGroup" />
                <asp:BoundField DataField="ProductDescription" HeaderText="ProductDescription" SortExpression="ProductDescription" />
                <asp:BoundField DataField="Responsable" HeaderText="Responsable" SortExpression="Responsable" />
                <asp:BoundField DataField="LifeTimeStatus" HeaderText="LifeTimeStatus" SortExpression="LifeTimeStatus" />
                <asp:BoundField DataField="LastEdit" HeaderText="LastEdit" SortExpression="LastEdit" />
                <asp:CheckBoxField DataField="PriceList" HeaderText="PriceList" SortExpression="PriceList" />
                <asp:BoundField DataField="Signal" HeaderText="Signal" SortExpression="Signal" />
                <asp:BoundField DataField="Version" HeaderText="Version" SortExpression="Version" />
                <asp:BoundField DataField="CaseIPU" HeaderText="CaseIPU" SortExpression="CaseIPU" />
                <asp:CommandField ShowEditButton="True" ShowInsertButton="True" />
            </Fields>
            <FieldHeaderStyle BackColor="#DEE8F5" Font-Bold="True" />
            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <AlternatingRowStyle BackColor="White" />
        </asp:DetailsView>
   
    </div>
    </form>
</body>
</html>
Avatar billede dr_chaos Nybegynder
31. marts 2006 - 17:39 #10
på alle de felter hvor det er muligt at indtaste en null værdi skal du sætte


f.eks.
  <asp:Parameter Name="LifeTimeStatus" Type="String" ConvertEmptyStringToNull="true" />
Avatar billede wildthing Nybegynder
03. april 2006 - 08:30 #11
Jeg har lagt ConvertEmptyStringToNull="true" ind på alle parametre linierder hedder "signal" og "version" som kan være en null i DB, men det hjælper intet. Der er som om at hvis jeg vil editere i en linie hvor et af disse textfelter er tomme, ja så hjælper det ingenting at at fylde noget i dem, den vil stdaig ikke update recorden. KUN hvis Recorden var "fyldt" i forvejen??? Access-mystik
Avatar billede dr_chaos Nybegynder
03. april 2006 - 17:38 #12
Du kan prøve at sætte DefaultValue=" "
Avatar billede wildthing Nybegynder
05. april 2006 - 08:13 #13
er vi så ikke tilbage ved dit svar  fra 31/03-2006 08:51:49. Dengang prøvede jeg med " " i access properties for felterne uden held, og tilsyneladende ej heller kunne du. Eller er det noget andet du mener:)
Avatar billede dr_chaos Nybegynder
05. april 2006 - 08:19 #14
Avatar billede dr_chaos Nybegynder
05. april 2006 - 08:20 #15
bla kan du sætte
ConvertEmptyStringToNull="true" på dine boundfields.
Avatar billede wildthing Nybegynder
05. april 2006 - 09:05 #16
Jeg sidder desværre ikke på min plads i dag, så jeg vender tilbage.
Avatar billede wildthing Nybegynder
14. juni 2006 - 13:52 #17
Dr_chaos
Jeg lukker sagen. tiden løber og der er snart ferie. Du får pointene for dine besvarelser. har ikke fået testet dit sidste bud. thanx anyway
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