Avatar billede stinejh1980 Nybegynder
02. november 2005 - 16:15 Der er 13 kommentarer og
1 løsning

Hvis DbNull skal textbox fyldes med

Min søgning hedder Select * from Varer where Produktlinie=TxtProduktlinie.text

Men hvis et felt i db er nul vil jeg gerne have den til at fylde min textbox med -
Avatar billede arne_v Ekspert
02. november 2005 - 16:19 #1
Enten skal du bruge en if og IsDBNull metoden i din applikations kode eller
du skal lade din SQL lave en erstatning.

Hvis du viser lidt kode og fortæller hvilken database du bruger så kan vi være mere
specifikke.
Avatar billede stinejh1980 Nybegynder
02. november 2005 - 16:35 #2
Tog det lige fra en anden side

Jeg bruger Access

<%@ Page Language="VB" Debug="true" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.Oledb" %>
<script runat="server">

Dim strConn As String
Dim objConn As OleDbConnection
Dim objComm As OleDbCommand
Dim objRs As OleDbDataReader

Sub Page_Load()

    strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.Mappath("test.MDB") & ";"
    objConn = New OleDbConnection(strConn)

End Sub



Sub BtnHent_Click(sender As Object, e As EventArgs)

    Dim strSQL as string
        strSQL = "Select * from DB where KundeID='" & TxtKunde.text & "' and OrdreNr='" & txtOrdreNr.text & "'"
        ObjConn = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=test.mdb")
        ObjComm = New OleDbCommand(strSQL, objConn)
       
        ObjConn.Open()
        ObjRs = objComm.ExecuteReader()
        While ObjRs.Read()
       
            '    INFO
            TxtKunde.text = objrs("kunde")
            TxtNavn.text = Objrs ("Navn")
            TxtOrdreNr.text = Objrs ("OrdreNr")
            TxtLevUge.text = Objrs ("LevUge")
            TxtVaretype.text = Objrs ("Varetype")
            TxtProduktlinie.text = Objrs ("Produktlinie")
            TxtMateriale.text = Objrs ("Materiale")
            '                        DropFarve
           
           
            '    SYNING
            TxtTraadtykkelse.text = objrs("Traadtykkelse")
            TxtSombredde.text = objrs("Sombredde")
            TxtOmbuk.text = objrs("ombuk")
            TxtAntalSyninger.text = objrs("syninger_antal")
            TxtStinglaengde.text = objrs("Stinglaengde")
       
        End While
   
        ObjRs.Close()
        objConn.Close()

End Sub

Sub BtnVis_Click(sender As Object, e As EventArgs)
    LblVis.text += "<table class='Text' width='600' cellpadding='2' cellspacing='0' border='1' bordercolor='#000000'>"
    LblVis.text += "<tr bgcolor='#cccccc'><td width='100'> Info </td><td width='200'>&nbsp;</td><td width='100'>&nbsp;</td><td width='200'>&nbsp;</td></tr>"
    LblVis.text += "<TR><TD>Kunde ID</TD><TD>" & TxtKundeResultat.text & "</TD><TD>Varetype</TD><TD>" & TxtVaretype.text & "</TD></TR>"
    LblVis.text += "<TR><TD>Navn</TD><TD>"& TxtNavn.text &"</TD><TD>Produktlinie</TD><TD>"& TxtProduktlinie.text &"</TD></TR>"
    LblVis.text += "<TR><TD>Ordrenumber</TD><TD>"& TxtOrdreNr.text &"</TD><TD>Materiale</TD><TD>"& TxtMateriale.text &"</TD></TR>"
    LblVis.text += "<TR><TD>Leveringsuge</TD><TD>"& TxtLevUge.text &"</TD><TD>Farve</TD><TD>" & DropFarve.SelectedItem.Text  & "</TD></TR></table>"
End Sub

Sub BtnNy_Click(sender As Object, e As EventArgs)
    TxtKunde.text = ""
    TxtOrdrenr.text = ""
End Sub

</script>
<html>
<head>
    <title></title>
    <link href="standard.css" type="text/css" rel="stylesheet" />
</head>
<body id="Produktion">
    <form runat="server">
        <script language="javascript">
function PrintThisPage()
{
  var sOption="toolbar=yes,location=yes,directories=yes,menubar=yes,";
  var sWinHTML = document.getElementById('LblVis').innerHTML;
  var winprint=window.open("",null,"width=1000,status=no,toolbar=no,menubar=yes,location=no,scrollbars=yes,left=0,top=0");
      winprint.document.open();
      winprint.document.write('<body class="text"><html><head><link href="standard.css" type="text/css" rel="stylesheet" /></head>');
      winprint.document.write('<div><a href=# onclick=window.print()>Udskriv side</a></div>');
      winprint.document.write(sWinHTML);         
      winprint.document.write('</body></html>');
      winprint.document.close();
      winprint.focus();
}
</script>
        <div id="PrintDiv"><a href="java script:PrintThisPage();">Print produktionskort</a>
        </div>
        <br />
        <table id="hent" cellspacing="0" cellpadding="0" width="600" border="0">
           
                <tr>
                  <td>&nbsp;</td>
                </tr>
            </table>
        <table class="Text" cellspacing="0" cellpadding="0" width="650" border="1">
         
            <tr>
              <td width="100"> Kunde ID</td>
              <td width="200"><asp:TextBox id="TxtKunde" runat="server"></asp:TextBox>
              </td>
              <td width="100"> Ordrenumber</td>
              <td width="200"><asp:TextBox id="TxtOrdrenr" runat="server"></asp:TextBox>
              </td>
              <td width="50"><asp:Button id="BtnHent" onclick="BtnHent_Click" runat="server" Text="Hent"></asp:Button>
              </td>
            </tr>
          </table>
        <br />
        <table class="Text" cellspacing="0" cellpadding="0" width="600" border="1">
         
            <tr bgcolor="#cccccc">
              <td width="100"> Info </td>
              <td width="200">&nbsp;</td>
              <td width="100"><p> Udført af </p></td>
              <td width="200">&nbsp;</td>
            </tr>
            <tr>
              <td> Kunde ID</td>
              <td><asp:TextBox id="TxtKundeResultat" runat="server"></asp:TextBox>
              </td>
              <td> Varetype</td>
              <td><asp:TextBox id="TxtVaretype" runat="server"></asp:TextBox>
              </td>
            </tr>
            <tr>
              <td> Navn</td>
              <td><asp:TextBox id="TxtNavn" runat="server"></asp:TextBox>
              </td>
              <td> Produktlinie</td>
              <td><asp:TextBox id="TxtProduktlinie" runat="server"></asp:TextBox>
              </td>
            </tr>
            <tr>
              <td> Ordrenumber</td>
              <td><asp:TextBox id="TxtOrdrenrS" runat="server"></asp:TextBox>
              </td>
              <td> Materiale</td>
              <td><asp:TextBox id="TxtMateriale" runat="server"></asp:TextBox>
              </td>
            </tr>
            <tr>
              <td> Leveringsuge</td>
              <td><asp:TextBox id="TxtLevUge" runat="server"></asp:TextBox>
              </td>
              <td> Farve</td>
              <td><asp:DropDownList id="DropFarve" runat="server" AutoPostBack="True">
                  <asp:ListItem Value="0" Selected="true">V&aelig;lg</asp:ListItem>
                  <asp:ListItem Value="1">Sort</asp:ListItem>
                  <asp:ListItem Value="2">hvid</asp:ListItem>
                  <asp:ListItem Value="3">rød</asp:ListItem>
                  <asp:ListItem Value="4">gul</asp:ListItem>
                  <asp:ListItem Value="5">blå</asp:ListItem>
                </asp:DropDownList>
              </td>
            </tr>
          </table>
        <br />
        <table class="Text" cellspacing="0" cellpadding="0" width="600" border="1">
         
            <tr bgcolor="#cccccc">
              <td width="100"> Syning</td>
              <td width="200">&nbsp;</td>
              <td width="100"> Udført af </td>
              <td width="200">&nbsp;</td>
            </tr>
            <tr>
              <td> Trådtykkelse</td>
              <td><asp:TextBox id="TxtTraadtykkelse" runat="server"></asp:TextBox>
              </td>
              <td> Antal syninger </td>
              <td><asp:TextBox id="TxtAntalSyninger" runat="server"></asp:TextBox>
              </td>
            </tr>
            <tr>
              <td> Sømbredde</td>
              <td><asp:TextBox id="TxtSombredde" runat="server"></asp:TextBox>
              </td>
              <td> Stinglængde</td>
              <td><asp:TextBox id="TxtStinglaengde" runat="server"></asp:TextBox>
              </td>
            </tr>
            <tr>
              <td> Ombuk længde </td>
              <td><asp:TextBox id="TxtOmbuk" runat="server"></asp:TextBox>
              </td>
              <td> Stingtype</td>
              <td><asp:TextBox id="TxtStingtype" runat="server"></asp:TextBox>
              </td>
            </tr>
          </table>
        <br />
        <table class="Text" cellspacing="0" cellpadding="0" width="600" border="1">
            <tr bgcolor="#cccccc">
              <td width="100"> Forsendelse</td>
              <td width="200">&nbsp;</td>
              <td width="100"> Udført af</td>
              <td width="200">&nbsp;</td>
            </tr>
            <tr>
              <td> Poser</td>
              <td><asp:TextBox id="TxtPoserResultat" runat="server" TextMode="SingleLine"></asp:TextBox>
              </td>
              <td> Sendt dato: </td>
              <td>&nbsp;</td>
            </tr>
          </table>
        <br />
        <asp:Button id="BtnVis" onclick="BtnVis_Click" runat="server" Text="Gem Ændringer"></asp:Button>
        <br />
        <p><asp:Label id="LblVis" runat="server" visible="true" CssClass="Text"></asp:Label></p>
    </form>
</body>
</html>
Avatar billede arne_v Ekspert
02. november 2005 - 16:42 #3
If ObjRs.IsDBNull("Materiale") Then
    TxtMateriale.text = "-"
Else
    TxtMateriale.text = Objrs("Materiale")
End If
Avatar billede arne_v Ekspert
02. november 2005 - 16:44 #4
SELECT IIF(ISNULL(Materiale),'-',Materiale),... FROM ... WHERE ...
Avatar billede stinejh1980 Nybegynder
02. november 2005 - 16:46 #5
Ok, men jeg har ca 30 søgninger på hver side, så det vil sige at jeg skal skrive dette 30 gange på hver side??
Avatar billede arne_v Ekspert
02. november 2005 - 16:47 #6
Eller håndtere det ved INSERT.

Eller bruge SQL varianten.
Avatar billede stinejh1980 Nybegynder
02. november 2005 - 16:53 #7
INSERT??
Avatar billede arne_v Ekspert
02. november 2005 - 16:54 #8
Du kunne jo også indsætte "-" fremfor NULL i tabellen
Avatar billede stinejh1980 Nybegynder
02. november 2005 - 16:54 #9
Jeg smutter hjem for i dag.
Prøver det lige i morgen
Avatar billede -psycho- Nybegynder
03. november 2005 - 19:39 #10
Eller hvis du ikke vil til at lave en komplet if sætning med else og osv kan du prøve den her.. er praktisk en if sætning dog bare på en lidt anden måde :)

Ved dog ikke om det virker i VB.

TxtMateriale.text = ((ObjRs.IsDBNull("Materiale")) ? "-" : objrs("Materiale"))
Avatar billede stinejh1980 Nybegynder
04. november 2005 - 14:44 #11
Men dette skal stadig stå ved alle objrs
Avatar billede -psycho- Nybegynder
04. november 2005 - 15:11 #12
ja, hvis du ikke vil det, så er du nød til at gøre så du får et - fra sql'en.

I din select, eller ved at indsætte -  ved insert.

Nu ved jeg ikke om alle felterne du har det her på er text, men hvis det er kan du nok bare sætte alle felterne til not null og så have - som default.
Avatar billede stinejh1980 Nybegynder
11. november 2005 - 14:45 #13
jeg satte bare - i db
Avatar billede arne_v Ekspert
11. november 2005 - 14:53 #14
jeg ligger et svar så
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