Tjena. Den frågan ser ut att enbart ge en post och en kolumn som svar, då burde du kunna använda cmd.ExecuteScalar() Använda inte dataset i onödan, använd datareader så långt det går.. Löste det med hjälp av killen jag jobbar med :) Err, det där ser krångligare ut än vad det är, Johan glömde visst kvar lite testkod eller nåt. Han behövde iaf datasetet ändå, då det är bundet till en datagrid.SQL problem (Count)
Har fått ett jobb nu där jag fått i uppgift att göra några ASP.Net sidor.
Nu är problemet den att jag vill visa antal poster i en tabell i en MySQL databas.
Programerings språket är VB.
Koden jag använder för anslutnigen och körandet av SQL sats är:
Dim ConnStr As String = "Driver={MySQL ODBC 3.51
Driver};Server=localhost;Database=tabellnamn;uid=anvandarnamn;pwd=losenord;option=3"
Dim con As OdbcConnection = New OdbcConnection(ConnStr2)
Dim cmd As OdbcCommand = New OdbcCommand("Select COUNT(x) from x where x='0'")
Dim dbAdap As OdbcDataAdapter = New OdbcDataAdapter(cmd)
Dim dbData As DataSet = New DataSet()
con.Open()
dbAdap.SelectCommand.Connection = con
dbAdap.Fill(dbData, "temptable")
con.Close()
x är namnen på kolumnerna i tabellen.
Nu är frågan hur jag visar för användaren resultatet av SQL satsen.
Jag kör med denna anslutning för att en som jag jobbar med gav mig koden till den och det blir ett välldans jobb att ändra om jag behöver ändra på anslutningen så jag ser helst att det går med denna anslutning.
Tacksam för all jälp som jag kan få, har letat mig grön på google.
PS: Vet ej om det är ASP.net 2.0 eller 1.X
M.V.H.
Johan A
Sv: SQL problem (Count)
/JohanSv:SQL problem (Count)
Det finns 3 klasser du kan använda på www.pellesoft.se/kurs som gör det lätt för dig ...
<code>
imports System.Data.SqlClient
dim dr as SqlClient.sqldatareader = klassnamn.returndatareader("select count(1) from tabell where id=1")
while dr.read()
dim rows as integer = dr(0)
end while
dr.close
</code>Sv: SQL problem (Count)
Löste det genom att göra på detta vis:
Dim ConnStr As String = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=DatabasNamn;uid=AnvnadarNamn;pwd=Lösen;option=3"
Dim con As OdbcConnection = New OdbcConnection(ConnStr)
Dim cmd As OdbcCommand = New OdbcCommand("Select COUNT(X) from X where X='0'")
Dim dbAdap As OdbcDataAdapter = New OdbcDataAdapter(cmd)
Dim dbData As DataSet = New DataSet()
Dim rakna As Integer = 0
Try
con.Open()
dbAdap.Fill(dbData, "temptable")
rakna = dbData.Tables(0).Select("X = 0").Length
con.Close()
Catch ex As Exception
End Try
con.Open()
dbAdap.SelectCommand.Connection = con
dbAdap.Fill(dbData, "temptable")
con.Close()
LOPub.Text = "Opublicerade referenser: " & rakna
Ganska enkel och smidig lösning tycker jag :)
Sv:SQL problem (Count)
Men rakna = dbData.Tables(0).Select("X = 0").Length är lösningen på problemet, iaf.