Avatar billede michaeljuhl Nybegynder
06. februar 2005 - 01:21 Der er 16 kommentarer og
1 løsning

Hent data fra MSSQL DB via et textbox input

Hej alle
Jeg søger hjælp med følgende problem, jeg er ny i asp.net
jeg anvender VB.Net, så hjælpen skal være kodet i dette. :-)

Jeg vil hente en record fra en MSSQL DB med input fra en Textbox, og derefter fylde record'en(9 felter) ud i 9 textboxe, jeg har oprettet et dataset, en sqldataadapter samt en sqlconnection og preview af data er ok, og ligeledes hvis jeg valgte at fylde en datagrid, så connection til DB er OK.
Avatar billede snepnet Nybegynder
06. februar 2005 - 01:28 #1
hej michael :o)

datagriddet viser pr. default tekstbokse hvis rækken er i editmode, hvilket du kan angive med
someDataGrid.EditItemIndex = index;
hvor index så er nummeret på den række der skal kunne editeres.

har du prøvet det ?
(og er måske ikke så vild med det eller ...)

mvh
Avatar billede michaeljuhl Nybegynder
06. februar 2005 - 01:31 #2
Hej snepnet
Nej jeg har brug for at vise data på en god gammeldags formular facon :-)
Ellers tak for svaret

//Michael
Avatar billede snepnet Nybegynder
06. februar 2005 - 01:34 #3
oki - så har du ikke rigtig anden mulighed end at lave det selv, med mindre du har mulighed for at skifte til V2.0 (går ud fra at du bruger V1.1 nu).

men det kan selvfølgelig sagtens lade sig gøre... skal det fungere på den måde at du kun vil vise én record ad gangen ?

mvh
Avatar billede michaeljuhl Nybegynder
06. februar 2005 - 01:37 #4
Ja jeg anvender V1.1 og kan p.t ikke skifter lige nu da serveren det skal køre på ikke kan/må løftes til V2.0

ja, jeg skal kun vise en record af gangen.
//Michael
Avatar billede snepnet Nybegynder
06. februar 2005 - 01:45 #5
oki - V1.1 understøtter desværre ikke tovejs databinding, men du kan få hjælp den ene vej (til fremvisning) - og selve sørge for bindingen den anden vej :

du kan lige få et lille eksempel her om lidt (det kan laves på mange måder - men du får kun en enkelt her til at starte med) .... jeg skal lige ordne noget først.

mvh
Avatar billede michaeljuhl Nybegynder
06. februar 2005 - 01:50 #6
Okay, det vil være fint hvis du har noget jeg kan starte med :-)

//Michael
Avatar billede snepnet Nybegynder
06. februar 2005 - 01:58 #7
Du kan få lidt her .... det er bare et eksempel - du må endelig spørge hvis der er noget du ikke er helt med på :
(det er lavet med code-behind som det sættes op som standard med vs... du må lige sige til hvis du arbejder med et andet værktøj).

Det er uden fejlsikring og alt det der ... men du kan måske blive inspireret - ellers råber du bare op, så skal jeg se om jeg kan finde på noget andet :o)

// aspx-fil
<%@ Page language="c#" Codebehind="michaeljuhl.aspx.cs" AutoEventWireup="false" Inherits="EXP2.michaeljuhl" %>
<HTML>
    <HEAD>
        <title>michaeljuhl</title>
    </HEAD>
    <body>
        <form id="Form1" method="post" runat="server">
            <asp:TextBox id="txtFldString" runat="server" Text='<%# FldString %>'></asp:TextBox><BR>
        </form>
    </body>
</HTML>

// og code-behind
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

using ExpArticles.ExpData;

namespace EXP2
{
    public class michaeljuhl : System.Web.UI.Page
    {
        // tekstboks til at vise noget fra rækken
        protected System.Web.UI.WebControls.TextBox txtFldString;

        // nem adgang til et felt i rækken
        protected string FldString
        {
            get{return PageDataRow["FldString"].ToString();}
            set{PageDataRow["FldString"] = value;}
        }
       
        // datarækken gemmes i sesssion, da jeg forestiller mig at du vil opdatere den senere
        protected DataRow PageDataRow
        {
            get{return (DataRow)Session["DataRow"];}
            set{Session["DataRow"] = value;}
        }
   
        // ved load henter du første gang de data du vil arbejde med
        private void Page_Load(object sender, System.EventArgs e)
        {
            if(!IsPostBack)
            {
                DataSet ds = new ExpDataAccess().GetSampleData(1);
                PageDataRow = ds.Tables[0].Rows[0];
                DataBind();
            }
        }

        // vs standard
        override protected void OnInit(EventArgs e)
        {
            InitializeComponent();
            base.OnInit(e);
        }
       
        // vs standard
        private void InitializeComponent()
        {   
            this.Load += new System.EventHandler(this.Page_Load);
        }
    }
}
Avatar billede snepnet Nybegynder
06. februar 2005 - 02:01 #8
Hov ...  det er nok noget i denne stil på VB'sk

Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Web
Imports System.Web.SessionState
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Imports ExpArticles.ExpData
Namespace EXP2

Public Class michaeljuhl
Inherits System.Web.UI.Page
  Protected txtFldString As System.Web.UI.WebControls.TextBox

  Protected Property FldString() As String
    Get
      Return PageDataRow("FldString").ToString
    End Get
    Set
      PageDataRow("FldString") = value
    End Set
  End Property

  Protected Property PageDataRow() As DataRow
    Get
      Return CType(Session("DataRow"), DataRow)
    End Get
    Set
      Session("DataRow") = value
    End Set
  End Property

  Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    If Not IsPostBack Then
      Dim ds As DataSet = (New ExpDataAccess).GetSampleData(1)
      PageDataRow = ds.Tables(0).Rows(0)
      DataBind
    End If
  End Sub

  Protected Overloads Overrides Sub OnInit(ByVal e As EventArgs)
    InitializeComponent
    MyBase.OnInit(e)
  End Sub

  Private Sub InitializeComponent()
    AddHandler Me.Load, AddressOf Me.Page_Load
  End Sub
End Class
End Namespace

og du skal så også lige ændre
<%@ Page language="c#" Codebehind="michaeljuhl.aspx.cs" AutoEventWireup="false" Inherits="EXP2.michaeljuhl" %>

til

<%@ Page language="VB" Codebehind="michaeljuhl.aspx.vb" AutoEventWireup="false" Inherits="EXP2.michaeljuhl" %>

VB'en er autogenereret, så der kan godt være lidt fejl :o) (skriver normalt ikke VB).

mvh
Avatar billede snepnet Nybegynder
06. februar 2005 - 02:02 #9
og så er det forøvrigt lavet med et minidal-test datalag jeg selv har... ovenstående koden henter bare et dataset med en enkelt række i, men du har jo skrevet at du har den slags i forvejen.

sig til hvis du synes det er helt sort...

mvh
Avatar billede michaeljuhl Nybegynder
06. februar 2005 - 02:10 #10
Hej Snepnet
Jeg kigger det lidt igennem, og forsøger at tilpasse det :-)
Jeg vender tilbage i morgen eftermiddag, nu er det sovetid, skal op og løbe i morgen tidlig :-)
godnat Michael
Avatar billede snepnet Nybegynder
06. februar 2005 - 02:12 #11
bare iorden :o)
du skriver bare imorgen, hvis du får brug for en hånd med tilpasningen.
mvh
Avatar billede michaeljuhl Nybegynder
06. februar 2005 - 02:17 #12
Okay, tak indtil videre
//Michael
Avatar billede michaeljuhl Nybegynder
09. februar 2005 - 22:20 #13
Hej Snepnet
Jeg har fået tilpasset det til min app, så tak for hjælpen
Send et svar, så du kan få point's
//Michael
Avatar billede snepnet Nybegynder
09. februar 2005 - 22:46 #14
super - jamen så får du et svar herfra :o)
mvh
Avatar billede snepnet Nybegynder
07. september 2005 - 18:05 #15
hej michael - kan du ikke acceptere her?
mvh
Avatar billede michaeljuhl Nybegynder
11. november 2005 - 22:36 #16
Det er vist det man kan kalde en smutter, Undskyld mange gange
Michael
Avatar billede snepnet Nybegynder
12. november 2005 - 11:34 #17
det er da bare helt iorden :o)
mvh
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