06. februar 2005 - 01:21Der 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.
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 ...)
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.
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)
// 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); } } }
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" %>
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.
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
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.