no overload for method xxx takes 0 argument

.NET

6 svar · 350 visningar · startad av trexter

Medlem sedan mars 20021 889 inlägg
Trådstart#1

Får felmsg på det fetstilta. Förstår inte vad de menar då jag uppenbarligen inte skickar med några parametrar.

        public static IDataReader makeDataReader()
        {
            switch (connectionType)
            {
            case ((int)connectionTypes.SQLServer):
                [b]return (IDataReader)new SqlDataReader();[/b]
            case ((int)connectionTypes.ODBC):
                [b]return (IDataReader)new OdbcDataReader();[/b]
            }
        //no match
        return null;
        }
Medlem sedan juli 20011 304 inlägg
#2

Nä just det. Du skickar 0 argument och det är just det som felmeddelndet säger :)

Men just i det här fallet är problemet att du anropar en konstruktor på en datareader. Det man ska göra är att ropa på ExecuteReader på ett commandobject.

Medlem sedan mars 20021 889 inlägg
#3

r) läste lite fel. ;)
ska kika på't

men.. förstår inte riktigt hur koden ska se ut...

Medlem sedan juli 20011 304 inlägg
#4

Jag gissat att du försöker åstadkomma något Sånt här

Medlem sedan mars 20021 889 inlägg
#5

Hmm, tycker att jag gjort som i artikeln.

        public static IDataReader makeDataReader(IDbCommand i)
        {
            switch (connectionType)
            {
            case ((int)connectionTypes.SQLServer):
                SqlDataReader dr;
                dr = (SqlDataReader)i.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
                return (IDataReader)dr;
            case ((int)connectionTypes.ODBC):
                [b]OdbcDataReader dr;[/b]
                dr = (OdbcDataReader)i.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
                return (IDataReader)dr;
            }
        //no match
        return null;
        }

-- no overload for method odbcdatareader takes 0 arguments

Medlem sedan mars 20021 889 inlägg
#6

Det felmeddelandet berodde på namnkonflikt.
Ett annat fel dock:

.cs

            IDataReader myReader = ConnectionFactory.makeDataReader(commPoster);
            meddelanden.DataSource = myReader;
            meddelanden.DataBind();
            conn.Close();

.aspx

        <asp:Repeater runat="server" id="meddelanden">
            <HeaderTemplate>
            <table width="500">
            </HeaderTemplate>

            <ItemTemplate>
            <tr>
            <td><%# DataBinder.Eval(Container.DataItem, "Xdatum") %></td>
            <td><%# DataBinder.Eval(Container.DataItem, "Xrubrik") %></td>
            <td><b><%# DataBinder.Eval(Container.DataItem, "Xgammal") %></b></td>
            </tr>
            </ItemTemplate>

            <FooterTemplate>
            </table>
            </FooterTemplate>
        </asp:Repeater>

Inget felmeddelande men ingenting visas. Hur ska det se ut?

Medlem sedan juli 20011 304 inlägg
#7

Vad skickar du med för SQL ?
Är du säker på att readren innehåller något och att det är rätt?

254 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)