webForumDet fria alternativet

no overload for method xxx takes 0 argument

.NET

6 svar · 336 visningar · startad av trexter

Medlem sedan mars 20021 889 inlägg
Frågan#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?

270 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
146 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)