Avatar billede montymus Nybegynder
01. november 2005 - 15:31 Der er 14 kommentarer og
1 løsning

Fra database over i datagrid

Jeg har lavet således at når man kommer ind på siden skal den vise indholdet fra min database i et datagrid.. men jeg får fejl og kan ikke se hvor jeg gør det galt:

FEJLEN:

Serverfejl i programmet '/5sem/SKiste'.
--------------------------------------------------------------------------------

Incorrect syntax near the keyword 'User'.
Beskrivelse: Der opstod en ikke-afviklet undtagelse under udførelse af den aktuelle webanmodning. Se staksporingen for at få yderligere oplysninger om fejlen, og hvor den kom fra i koden.

Detaljer om undtagelse: System.Data.SqlClient.SqlException: Incorrect syntax near the keyword 'User'.

Kildefejl:


Linje 40:             SqlCommand Cmd = new SqlCommand(SQL, Conn);
Linje 41:
Linje 42:             SqlDataReader Reader = Cmd.ExecuteReader();
Linje 43:
Linje 44:             // Create a SqlAdapter object


Kildefil: c:\inetpub\wwwroot\5sem\skiste\edituser.aspx.cs    Linje: 42

Staksporing:


[SqlException: Incorrect syntax near the keyword 'User'.]
  System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
  System.Data.SqlClient.SqlCommand.ExecuteReader()
  SKiste.EditUser.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\5sem\skiste\edituser.aspx.cs:42
  System.Web.UI.Control.OnLoad(EventArgs e)
  System.Web.UI.Control.LoadRecursive()
  System.Web.UI.Page.ProcessRequestMain()




--------------------------------------------------------------------------------
Versionsoplysninger: Microsoft .NET Framework version:1.1.4322.2032; ASP.NET version:1.1.4322.2032

KODEN:

private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
            // string ConnStr = "Data Source=MONTYMUZ;database=5SEMTEST;user=sa;pwd=03051996";
            string ConnectStr = "Data Source=MONTYMUZ;Initial Catalog=5SEM_FINAL_DB;User ID=sa;Password=03051996;";
            SqlConnection Conn = new SqlConnection(ConnectStr);

            // SqlConnection Conn = new SqlConnection(ConnStr);
            Conn.Open();

            string SQL = "SELECT * FROM User ORDER BY ForNavn";
            SqlCommand Cmd = new SqlCommand(SQL, Conn);

            SqlDataReader Reader = Cmd.ExecuteReader();

            // Create a SqlAdapter object
            SqlDataAdapter adp = new SqlDataAdapter(SQL, Conn);

            // Create a dataset object
            DataSet ds = new DataSet();

            // Create a usertable in the dataset and fill it with the data
            // collected from selectcommand of the SqlDataAdapter
            adp.Fill(ds, "User");

            dgUserInfo.DataSource = ds.Tables["User"].DefaultView;
            dgUserInfo.DataBind();
           
            // Itherate through the rows collection of the employee table
            foreach (DataRow dr in ds.Tables["User"].Rows)
            {
                //dgUserInfo += string.Format("{0} {1} {2} {3}<br>", dr["UID"], dr["ForNavn"], dr["EfterNavn"], dr["Email"]);
            }

            Reader.Close();

            Conn.Close();

        }
Avatar billede arne_v Ekspert
01. november 2005 - 15:44 #1
user er et reserveret ord - kald din tabel noget andet
Avatar billede arne_v Ekspert
01. november 2005 - 15:45 #2
eller som nødløsning sæt den i [] altså [user]
Avatar billede montymus Nybegynder
01. november 2005 - 17:17 #3
har skiftet navn og programmet kører, men den viser intet i mit grid

private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
            string ConnStr = "Data Source=MONTYMUZ;database=5SEM_FINAL_DB;user=sa;pwd=03051996";
            SqlConnection Conn = new SqlConnection(ConnStr);
            Conn.Open();
           
            string SQL = "SELECT * FROM myUser ORDER BY ForNavn";
            SqlCommand Cmd = new SqlCommand(SQL, Conn);

            SqlDataReader Reader = Cmd.ExecuteReader();
            Reader.Close();
            // Create a SqlAdapter object
            SqlDataAdapter adp = new SqlDataAdapter(SQL, Conn);

            // Create a dataset object
            DataSet ds = new DataSet();

            // Create a usertable in the dataset and fill it with the data
            // collected from selectcommand of the SqlDataAdapter
            adp.Fill(ds, "myUser");

            dgUserInfo.DataSource = ds.Tables["myUser"].DefaultView;
            dgUserInfo.DataBind();
           
            // Itherate through the rows collection of the employee table
                Conn.Close();

        }
Avatar billede arne_v Ekspert
01. november 2005 - 17:22 #4
og der er data i tabellen ?

og dgUserInfo er protected ?
Avatar billede montymus Nybegynder
01. november 2005 - 17:27 #5
jeg har smidt en user ind..

protected??  skær ud i pap plz ..
Avatar billede arne_v Ekspert
01. november 2005 - 17:29 #6
hvis jeg husker rigtigt så skal web kontroller i code behind være protected og
ikke private
Avatar billede arne_v Ekspert
01. november 2005 - 17:29 #7
hvordan er dgUserInfo erklæret ?
Avatar billede montymus Nybegynder
01. november 2005 - 17:52 #8
c# koden:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace SKiste
{
    /// <summary>
    /// Summary description for EditUser.
    /// </summary>
    public class EditUser : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.TextBox TextBox1;
        protected System.Web.UI.WebControls.TextBox TextBox2;
        protected System.Web.UI.WebControls.TextBox TextBox3;
        protected System.Web.UI.WebControls.TextBox TextBox4;
        protected System.Web.UI.WebControls.Button bnAdd;
        protected System.Web.UI.WebControls.Button bnClear;
        protected System.Web.UI.WebControls.DataGrid dgUserInfo;
        protected System.Web.UI.WebControls.TextBox TextBox5;
   
        private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
            string ConnStr = "Data Source=MONTYMUZ;database=5SEM_FINAL_DB;user=sa;pwd=03051996";
            SqlConnection Conn = new SqlConnection(ConnStr);
            Conn.Open();
           
            string SQL = "SELECT * FROM myUser ORDER BY ForNavn";
            SqlCommand Cmd = new SqlCommand(SQL, Conn);

            SqlDataReader Reader = Cmd.ExecuteReader();
            Reader.Close();
            // Create a SqlAdapter object
            SqlDataAdapter adp = new SqlDataAdapter(SQL, Conn);

            // Create a dataset object
            DataSet ds = new DataSet();

            // Create a usertable in the dataset and fill it with the data
            // collected from selectcommand of the SqlDataAdapter
            adp.Fill(ds, "myUser");

            dgUserInfo.DataSource = ds.Tables["myUser"].DefaultView;
            dgUserInfo.DataBind();
           
            // Itherate through the rows collection of the employee table
            foreach (DataRow dr in ds.Tables["myUser"].Rows)
            {
                //dgUserInfo += string.Format("{0} {1} {2} {3}<br>", dr["UID"], dr["ForNavn"], dr["EfterNavn"], dr["Email"]);
            }
                Conn.Close();

        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
       
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {   
            this.dgUserInfo.SelectedIndexChanged += new System.EventHandler(this.dgUserInfo_SelectedIndexChanged);
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion

        private void dgUserInfo_SelectedIndexChanged(object sender, System.EventArgs e)
        {
       
        }
    }
}


HTML koden:

%@ Page language="c#" Codebehind="EditUser.aspx.cs" AutoEventWireup="false" Inherits="SKiste.EditUser" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>EditUser</title>
        <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
        <meta content="C#" name="CODE_LANGUAGE">
        <meta content="JavaScript" name="vs_defaultClientScript">
        <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    </HEAD>
    <body ms_positioning="GridLayout">
        <form id="Form1" method="post" runat="server">
            <H1 align="center">Brugeroplysninger / rediger bruger</H1>
            <P align="left">
                <TABLE id="Table1" cellSpacing="1" cellPadding="1" width="369" border="0">
                    <TR>
                        <TD>Fornavn:</TD>
                        <TD><asp:textbox id="TextBox1" runat="server" Width="300px"></asp:textbox></TD>
                    </TR>
                    <TR>
                        <TD>Efternavn:</TD>
                        <TD><asp:textbox id="TextBox2" runat="server" Width="300px"></asp:textbox></TD>
                    </TR>
                    <TR>
                        <TD>Password:</TD>
                        <TD><asp:textbox id="TextBox3" runat="server" Width="300px"></asp:textbox></TD>
                    </TR>
                    <TR>
                        <TD>Email:</TD>
                        <TD><asp:textbox id="TextBox4" runat="server" Width="300px"></asp:textbox></TD>
                    </TR>
                    <TR>
                        <TD>Mobil:</TD>
                        <TD><asp:textbox id="TextBox5" runat="server" Width="300px"></asp:textbox></TD>
                    </TR>
                    <TR>
                        <TD colSpan="2">
                            <P align="right"><asp:button id="bnAdd" runat="server" Text="Tilføj"></asp:button><asp:button id="bnClear" runat="server" Text="Ryd"></asp:button></P>
                        </TD>
                    </TR>
                </TABLE>
                <asp:datagrid id="dgUserInfo" style="Z-INDEX: 101; LEFT: 392px; POSITION: absolute; TOP: 72px"
                    runat="server" Width="336px" CellPadding="3" BackColor="White" BorderWidth="1px" BorderStyle="None"
                    BorderColor="#999999" CaptionAlign="Left" AutoGenerateColumns="False" AllowSorting="True"
                    Height="160px">
                    <FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
                    <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#008A8C"></SelectedItemStyle>
                    <AlternatingItemStyle BackColor="#DCDCDC"></AlternatingItemStyle>
                    <ItemStyle ForeColor="Black" BackColor="#EEEEEE"></ItemStyle>
                    <HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#000084"></HeaderStyle>
                    <Columns>
                        <asp:BoundColumn HeaderText="UID"></asp:BoundColumn>
                        <asp:BoundColumn HeaderText="Fornavn"></asp:BoundColumn>
                        <asp:BoundColumn HeaderText="Efternavn"></asp:BoundColumn>
                        <asp:BoundColumn HeaderText="Email"></asp:BoundColumn>
                    </Columns>
                    <PagerStyle HorizontalAlign="Center" ForeColor="Black" BackColor="#999999" Mode="NumericPages"></PagerStyle>
                </asp:datagrid></P>
            <P>&nbsp;</P>
        </form>
    </body>
</HTML>
Avatar billede montymus Nybegynder
01. november 2005 - 17:53 #9
Den er protected..  Det bliver den som default
Avatar billede arne_v Ekspert
01. november 2005 - 18:35 #10
bliver Page_Load kaldt som den skal ?

er der noget i det DataSet som du fill'er ?

fordi umiddelbart er der ikke noget som springer i øjnene
Avatar billede montymus Nybegynder
01. november 2005 - 19:50 #11
// Create a usertable in the dataset and fill it with the data
            // collected from selectcommand of the SqlDataAdapter
            adp.Fill(ds, "myUser");

Skulle da meget gerne fylde mit dataset eller er det mig der laver ged i den??
Avatar billede arne_v Ekspert
01. november 2005 - 20:08 #12
det set rigtigt ud

men et eller andet sted går det jo galt

og det er vigtigt at finde ud af hvor det går galt
Avatar billede montymus Nybegynder
02. november 2005 - 07:57 #13
ja så langt er jeg også kommet hehe..  Men problemet er at jeg er totalt lost p.t.
Avatar billede montymus Nybegynder
02. november 2005 - 22:19 #14
prøver lige omformulering osv
Avatar billede arne_v Ekspert
03. november 2005 - 23:52 #15
husk at rette tabelnavnet tilbage til user
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