Avatar billede tjgrindsted Nybegynder
09. januar 2007 - 22:41 Der er 30 kommentarer og
1 løsning

ang. sql connection og record udskrivning

Hej

Jeg har et tidlige spm. som er besvaret http://www.eksperten.dk/spm/754183

Her får jeg en løsning så jeg connecter rigtigt til min database, jeg synes dog at asp:datagrid asp:repeater mm. ikke virker så godt, jeg har prøvet asp og er van' til:

Dim strTitle, strText
strSQL = "SELECT [TextOverskrift], [TextMain] FROM index"
strSQL = strSQL & " WHERE [TextID] = 1"
Set objRS = objConn.Execute(strSQL)
   
    If Not (objRS.BOF Or objRS.EOF) Then
        Response.Write("<table width='100%' border='0' cellspacing='0' cellpadding='0'>")
   
    Do While Not objRS.EOF
   
    strTitle = objRS("TextOverskrift")
    strText = objRS("TextMain")
   
    Response.Write("<tr><td>")
    If strTitle <> "" Then
    Response.Write("<b>"&strTitle&"</b><br><br>")
    Else
    Response.Write("")
    End If
    Response.Write(strText)
    Response.Write("</td></tr>")
   
    objRS.MoveNext
    Loop
    Response.Write ("</table>")
    else
    Response.Write "Der findes intet i Databasen"
End If


hvordan kan jeg lave noget ligende så jeg selv kan lave en layout opsætning som her, samt bestemme hvor de forskellige udtræk skal være i ASP.NET

hvor jeg bruger denne kode del fra web.config
    <connectionStrings>
  <add name="ConnectionStringMain" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DSNbase.mdf;Integrated Security=True;User Instance=True"
  providerName="System.Data.SqlClient" />
</connectionStrings>

har læst lidt om det men kan ikke finde nogle løsning andet end asp:DataGrid mm. ved godt at nogle af tingene fra asp ikke kan bruges på samme måde i asp.net men håber dog alligevel at nogle vil hjælpe mig på vej mod en løsning.
Avatar billede tjgrindsted Nybegynder
09. januar 2007 - 22:46 #1
Ved ikke om jeg er på rette vej med dette !??
<%
    Dim connect As New sqlconnection("Server=mycomp;UID= ;password= ;database=DSNbase.mdf")
    connect.Open()
    Dim cmd As New sqlCommand("SELECT [TextMain] FROM index WHERE [TextID] = 1", connect)
    Dim Tekst As String
    Tekst = cmd.ExecuteScalar()
    Connect.Close()
    Response.Write(Tekst)
%>
Avatar billede kalp Novice
09. januar 2007 - 22:46 #2
Du skal bruge en SqlDataReader
Avatar billede kalp Novice
09. januar 2007 - 22:48 #3
Avatar billede tjgrindsted Nybegynder
09. januar 2007 - 22:52 #4
Hej Kalp tak for hurtig henvendelse...:)
hmm okay, ville det være muligt at du evt kunne omskrive mit eks. så jeg har lettere ved at finde ud af hvad der gør hvad !?
Avatar billede kalp Novice
09. januar 2007 - 22:53 #5
Ps.

For at få den effekt du snakker om helt præcist skal du bare koncentrere dig om denne del (når først du har fået det til at fungere)


string strTitle ="";
string strText  ="";
      while(rdr.Read())
                {
    strTitle = objRS["TextOverskrift"].ToString();
    strText = objRS["TextMain"].ToString();
   
    Response.Write("<tr><td>")
    if( strTitle != "")
    Response.Write("<b>"+strTitle+"</b><br><br>")
    else
    Response.Write("")
   
    Response.Write(strText)
    Response.Write("</td></tr>")
                }

    Response.Write ("</table>")
Avatar billede kalp Novice
09. januar 2007 - 22:58 #6
altså.. jeg sidder ikke og har en kompiller.. så kan ikke se syntax fejlene når det er i notepad.. men det her burde vel give dig hints nok... til at rette det til selv:)


SqlDataReader rdr = null;
            SqlConnection con = null;
            SqlCommand cmd = null;

            try
            {
                string ConnectionString = "Server=mycomp;UID= ;password= ;database=DSNbase.mdf";
                con = new SqlConnection(ConnectionString);
                con.Open();


                string CommandText = "SELECT TextOverskrift, TextMain FROM index WHERE [TextID] = 1";
                cmd = new SqlCommand(CommandText);
                cmd.Connection = con;
                rdr = cmd.ExecuteReader();
               
               
              string strTitle ="";
string strText  ="";
      while(rdr.Read())
                {
    strTitle = objRS["TextOverskrift"].ToString();
    strText = objRS["TextMain"].ToString();
   
    Response.Write("<tr><td>")
    if( strTitle != "")
    Response.Write("<b>"+strTitle+"</b><br><br>")
    else
    Response.Write("")
   
    Response.Write(strText)
    Response.Write("</td></tr>")
                }

    Response.Write ("</table>")
            }
            catch(Exception ex)
            {
                // Print error message
                MessageBox.Show(ex.Message);
            }
            finally
            {
                // Close data reader object and database connection
                if (rdr != null)
                    rdr.Close();

                if (con.State == ConnectionState.Open)
                    con.Close();
            }
Avatar billede tjgrindsted Nybegynder
09. januar 2007 - 23:05 #7
okay så i Vb er det så

Dim rdr As SqlDataReader = Nothing
Dim con As SqlConnection = Nothing
Dim cmd As SqlCommand = Nothing

Try
  Dim ConnectionString As String = "Server=mycomp;UID= ;password= ;database=DSNbase.mdf"
  con = New SqlConnection(ConnectionString)
  con.Open()
 
 
  Dim CommandText As String = "SELECT TextOverskrift, TextMain FROM index WHERE [TextID] = 1"
  cmd = New SqlCommand(CommandText)
  cmd.Connection = con
  rdr = cmd.ExecuteReader()
   
  Dim strTitle As String = ""
  Dim strText As String = ""
  While rdr.Read()
      strTitle = objRS("TextOverskrift").ToString()
      strText = objRS("TextMain").ToString()
     
      Response.Write("<tr><td>")
      If strTitle <> "" Then
        Response.Write(("<b>" + strTitle + "</b><br><br>"))
      Else
        Response.Write("")
      End If
      Response.Write(strText)
      Response.Write("</td></tr>")
  End While
  Response.Write("</table>")
  ' Print error message
  MessageBox.Show(ex.Message)
Finally
  ' Close data reader object and database connection
  If Not (rdr Is Nothing) Then
      rdr.Close()
  End If
  If con.State = ConnectionState.Open Then
      con.Close()
  End If
End Try
Avatar billede kalp Novice
09. januar 2007 - 23:11 #8
strTitle = objRS(
["TextOverskrift"].ToString()
      strText = objRS["TextMain"].ToString()

er ret sikker på det skal være med [] og ikke () som du har skrevet
Avatar billede tjgrindsted Nybegynder
09. januar 2007 - 23:13 #9
den siger at disse ikke er defineret

SqlDataReader
SqlConnection
SqlCommand

i
Dim rdr As SqlDataReader = Nothing
Dim con As SqlConnection = Nothing
Dim cmd As SqlCommand = Nothing

skal de bare vare As String alle 3 eller !?
Avatar billede kalp Novice
09. januar 2007 - 23:21 #10
de der er klasser... du skal huske at tilføje

using System.Data.SqlClient;

i toppen
Avatar billede kalp Novice
09. januar 2007 - 23:23 #11
det hedder nok Import i vb
Avatar billede tjgrindsted Nybegynder
09. januar 2007 - 23:23 #12
ahh

ja havde glemt de to i min web.config
System.Data
System.Data.SqlClient

men efter det er rettet så får jeg denne fejl omkring objRS:

Beskrivelse: Der opstod en fejl under kompilering af en ressource, der er påkrævet ved behandling af denne anmodning. Læs følgende detaljer om fejlen, og foretag de nødvendige ændringer af kildekoden.

Fejlmeddelelse om kompileringsfunktion: BC30451: Navnet 'objRS' er ikke blevet erklæret.

Kildefejl:



Linje 53:  Dim strText As String = ""
Linje 54:  While rdr.Read()
Linje 55:      strText = objRS["Text"].ToString()
Linje 56:     
Linje 57:      Response.Write("<tr><td>")
Avatar billede kalp Novice
09. januar 2007 - 23:28 #13
ja du bliver jo nød til at rette

objRS til rdr da det jo er dit "resultset"
Avatar billede tjgrindsted Nybegynder
09. januar 2007 - 23:30 #14
ja selvf.

Det er så gjort, men så melder den fejl ang. ToString med:
Fejlmeddelelse om kompileringsfunktion: BC30311: En værdi af typen 'System.Data.SqlClient.SqlDataReader' kan ikke konverteres til 'String'.
Avatar billede tjgrindsted Nybegynder
09. januar 2007 - 23:33 #15
Fejlen var [] i VB.Net kunne jeg lige hurtigt læse er det ()

sidste fejl tror jeg er
Fejlmeddelelse om kompileringsfunktion: BC30451: Navnet 'MessageBox' er ikke blevet erklæret.

hvilket system bliver det erklæret i !?
Avatar billede kalp Novice
09. januar 2007 - 23:40 #16
i System.Windows;
eller
System.Windows.Forms;
Avatar billede tjgrindsted Nybegynder
09. januar 2007 - 23:46 #17
så er den der næsten den kan ikke skabe forbindelse til min db med

  Dim ConnectionString As String = "Server=mycomp;UID= ;password= ;database=aeronetDSNbase.mdf"
  con = New SqlConnection(ConnectionString)
  con.Open()


det jeg brugte i min web.config som VWD2005EE selv oprettede er
    <connectionStrings>
  <add name="ConnectionStringMain" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DSNbase.mdf;Integrated Security=True;User Instance=True"
  providerName="System.Data.SqlClient" />
</connectionStrings>

Hvordan kan jeg skrive det om du lavede eller lave det om du lavede så den hente database stien fra connectionString fra web.config !?
Avatar billede kalp Novice
09. januar 2007 - 23:53 #18
Importer System.Configuration


og til din webconfig

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
    <add name="ConnStr"
    connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DSNbase.mdf;Integrated Security=True;User Instance=True" />
</connectionStrings>
</configuration>


så kan du hente din connection string med

ConfigurationSettings.AppSettings["ConnStr"])
Avatar billede tjgrindsted Nybegynder
10. januar 2007 - 00:01 #19
Hvormeget af dette fra default.aspx skal så væk !?
  Dim ConnectionString As String = "Server=mycomp;UID= ;password= ;database=DSNbase.mdf"
  con = New SqlConnection(ConnectionString)
  con.Open()
Avatar billede kalp Novice
10. januar 2007 - 00:05 #20
Dim ConnectionString As String = ConfigurationSettings.AppSettings["ConnStr"])
  con = New SqlConnection(ConnectionString)
  con.Open()

og evt. kalde ToString.. altså

ConfigurationSettings.AppSettings["ConnStr"]).ToString()
Avatar billede tjgrindsted Nybegynder
10. januar 2007 - 00:09 #21
okay jeg kunne se den brokkede sig, men skulle bare rette til:

Dim ConnectionString As String = ConfigurationManager.AppSettings("ConnStr")
con = New SqlConnection(ConnectionString)
con.Open()

men så siger den fejl ved con.Open()
Detaljer om undtagelse: System.InvalidOperationException: Egenskaben ConnectionString er ikke initialiseret.

Hvis det for sendt så sig til så er jeg på igen imorgen fra 18-??
Avatar billede kalp Novice
10. januar 2007 - 00:13 #22
jeg tror din web.config ikke er korrekt

prøv at lave den til dette istedet


<configuration>
<system.web>

</system.web>
<appSettings>
    <add key="ConnStr" value="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DSNbase.mdf;Integrated Security=True;User Instance=True" />
</appSettings >
</configuration>
Avatar billede tjgrindsted Nybegynder
10. januar 2007 - 00:20 #23
Kalp Nu virker det på min egen PC VWD2005EE men når jeg loader det op på en server så får jeg fejl men det er nok fordi

Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DSNbase.mdf;Integrated Security=True;User

Server=.\SQLExpress;AttachDbFilename=c:\local\domæne.dk\database\mydbfile.mdf;Database=dbname;Trusted_Connection=Yes;"

eller er det tæt på !??
Avatar billede kalp Novice
10. januar 2007 - 00:23 #24
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

sådan skal din connectionstring se ud... ved ikke hvor du er hosted henne, men der har de forklaring til hvad der skal indtastet i de forskellige..

Det er driver og server du skal finde info om.. men tror at server er "localhost"..
Database er jo navnet på din db.. og sti ti lden..

Uid og Pwd skal bare være tomme... sådan her

uid=;Pwd=;
Avatar billede tjgrindsted Nybegynder
10. januar 2007 - 00:28 #25
er ved Unoeuro.

database mappen hedder:
d:\local\domæne.dk\database\mindatabase.mdf

der hvor hjemmesiden skal ligge hedder så:
d:\local\domæne.dk\public_html\

når det gælder en asp side til MySQL så er det dette man skal bruge:
<%
SQLserveradr="[mysqlserver]"
SQLdatabase="[mysqldatabase]"
SQLlogin="[brugernavn]"
SQLpassword="password"

Set Conn = Server.CreateObject("ADODB.Connection")

conStr = "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase
conStr = conStr & ";uid="& SQLlogin &";pwd="& SQLpassword & ";OPTION=3"

Conn.Open conStr
%>


De skriver ikke så meget om Asp.Net men kan godt køre asp.net sider og de har opgraderet til 2.0 håber du nu kan se hvordan den skal se ud !! <appSetting> men <ConnetingString> igen !?

Men mener du at jeg så ikke skal bruge
Avatar billede kalp Novice
10. januar 2007 - 00:32 #26
ja så vidt jeg kan se understøtter de jo ikke MSSQL databaser...

dvs. du skal enten lave en Access database eller en MySQL.. jeg har ikke prøvet at køre MySQL op imod C#.. har med Access
Avatar billede tjgrindsted Nybegynder
10. januar 2007 - 00:37 #27
he he okay....

Hvordan skal dette så se ud hvis det er etil en MS Access database !?

    Dim rdr As SqlDataReader = Nothing
    Dim con As SqlConnection = Nothing
    Dim cmd As SqlCommand = Nothing

Try
        Dim ConnectionString As String = ConfigurationManager.AppSettings("ConnStr")
        con = New SqlConnection(ConnectionString)
        con.Open()
 
  Dim CommandText As String = "SELECT [MainID], [MainText] FROM [SiteText] WHERE [MainID] = 1"
  cmd = New SqlCommand(CommandText)
  cmd.Connection = con
  rdr = cmd.ExecuteReader()

  <appSettings>
    <add key="ConnStr" value="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DSNbase.mdf;Integrated Security=True;User Instance=True" />
  </appSettings >
Avatar billede kalp Novice
10. januar 2007 - 00:44 #28
importer System.Data.OleDb;



  Dim rdr As OleDbDataReader = Nothing
    Dim con As OleDbConnection = Nothing
    Dim cmd As OleDbCommand = Nothing

Try
        Dim ConnectionString As String = ConfigurationManager.AppSettings("ConnStr")
        con = New OleDbConnection(ConnectionString)
        con.Open()
 
  Dim CommandText As String = "SELECT [MainID], [MainText] FROM [SiteText] WHERE [MainID] = 1"
  cmd = New OleDbCommand(CommandText)
  cmd.Connection = con
  rdr = cmd.ExecuteReader()

  <appSettings>
    <add key="ConnStr" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\dindb.mdb" />
  </appSettings >
Avatar billede kalp Novice
10. januar 2007 - 00:45 #29
jeg hopper i seng nu... det der burde også klare ærterne for dig.. ;)
Avatar billede tjgrindsted Nybegynder
10. januar 2007 - 00:59 #30
jeg siger tak jeg har fået det til at virke med din hjælp 1000 Tak
Avatar billede kalp Novice
10. januar 2007 - 08:28 #31
ingen årsag;)
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