28. maj 2005 - 00:28
Der er
10 kommentarer og 1 løsning
Databind til tekstbokse
Hej Eksperter Jeg laver en select i en kunde datebase (lad os bare nøjes med fornavn og efternavn), disse informationer vil jeg så have til at fremgå i tekstbokse (istedet for f.eks. i et dategrid da jeg syntes at det er pænere). Hvordan pokker gør jeg det?
Annonceindlæg fra Cognizant
Det er dæleme noget med at gøre noget i retning af: Sub Fyld_tekstboxe() Dim strSQL as string StrSQL = "SELECT Fornavn, Efternavn FROM Kunder"; objComm = New OleDbCommand(strSQL, objConn) txtFornavn.Text = CType(objComm.ExecuteScalar(), String) txtEfternavn.Text = CType(objComm.ExecuteScalar(), String)
Undskyld, skulle nok have skrevet at det er C# jeg efterlyser...
Ok - men prøv så i stedet dette: void Fyld_tekstboxe() { string strSQL; StrSQL = "SELECT Fornavn, Efternavn FROM Kunder"; objComm = new OleDbCommand(strSQL, objConn); txtFornavn.Text = ((string)(objComm.ExecuteScalar())); txtEfternavn.Text = ((string)(objComm.ExecuteScalar())); }
hmm jeg får bare fornavn i begge textboxe
mickeynt>> ny til .net? nat>> prøv dette istedet string StrSQL = "SELECT Fornavn, Efternavn FROM Kunder"; objComm = new OleDbCommand(strSQL, objConn); OleDbDataReader reader = objCommand.ExecuteReader(ConnectionBehaviour.CloseConnection); reader.Read(); txtFornavn.Text = reader.GetString(0); txtEfternavn.Text = reader.GetString(1); reader.Close();
Hmmm jeg får følgende fejl når jeg prøver: {"Index (zero based) must be greater than or equal to zero and less than the size of the argument list." } Min kode ser sådan ud: try { //Open connection to the database DbConnection.Open(); OleDbDataAdapter da = new OleDbDataAdapter(); //Create StoredProcedure to insert row da.SelectCommand = new OleDbCommand("proc_login", DbConnection); da.SelectCommand.CommandType = CommandType.StoredProcedure; da.SelectCommand.Parameters.Add("@Email", Tb_Email); //da.SelectCommand.ExecuteNonQuery(); //overfør resultatet til tekstbokse til redigering OleDbDataReader reader = da.SelectCommand.ExecuteReader(); reader.Read(); TextBox2.Text = reader.GetString(0); TextBox3.Text = reader.GetString(1); TextBox4.Text = reader.GetString(2); TextBox5.Text = reader.GetString(3); TextBox6.Text = reader.GetString(4); TextBox7.Text = reader.GetString(5); TextBox8.Text = reader.GetString(6); } catch (Exception ee) { System.Diagnostics.Debug.WriteLine(ee.Message); //Close the connection to the database DbConnection.Close(); } finally { //Close the connection to the database DbConnection.Close(); } Jeg selecterer 7 felter fra tabellen og vil kun hente den person hvor email i tekstboksen matcher.. Kan jeg ikke gøre som jeg har gjort?
det er svært at vide uden at se hvordan din SPROC ser ud. Fejlen tyder i hvert fald på at du ikke vælger nok felter i din SPROC.
CREATE PROCEDURE proc_getKunde @Email varchar (50) AS select fornavn, eftnavn, gade, nr, postnr, city, tlfNr, email from Kunde where Email = @Email GO
burningice: Åhh jeg fandt min bug (manglede lige .text efter Tb_Email...) Så dit forslag virker helt efter hensigten. Smider du ikke lige et svar :)
:), ja, undrede mig også lidt over din Tb_Email, men gik ud fra det bare var en string-variabel du havde givet det navn.
Kurser inden for grundlæggende programmering