1. Du får nog förklara lite mer om hur saker och ting är uppbyggda eftersom jag inte riktigt fattar vad du är ute efter. Om du vill slippa fel om en post är null så för du sätta en flagga i databasen. Jag gissar att du använder Access. Då väljer du bara ditt fält i Desgin-läget och väljer Allow Zero Length till Yes.objRepeater (OleDbDataReader) - få rätt format automatiskt?
Jag skulle istället för att manuellt mata in nedanstående kod (jag har merkerat var jag menar) vilja köra någon For Each-loop som automatiskt letar upp vad fältet har för format (GetString,GetInt32 o.s.v)
2. Som det är nu så returneras ett fel om en post = NULL, hur gör man för att detta ej skall inträffa, förutom att lägga in ett värde såklart :-)
<code>
Public Function GetUserDetails(ByVal UserID As Integer) As UserDetails
'--- anropar en stored procedure
Dim objCmd As New OleDbCommand("spGetUserDetails", objConn)
objCmd.CommandType = CommandType.StoredProcedure
'--- parametervärde
Dim objParam As New OleDbParameter("@UserID", OleDbType.Char)
objParam.Value = UserID
objCmd.Parameters.Add(objParam)
Dim objReader As OleDbDataReader
Try
objConn.Open()
objReader = objCmd.ExecuteReader()
Catch Ex As OleDbException
Throw Ex
End Try
Dim objUserDetails As New UserDetails()
While objReader.Read()
With objUserDetails
*********************************** HÄRIFRÅN VILL JAG HA EN LOOP ******
.UserID = UserID.ToString
.UserName = objReader.GetString(0)
.Password = objReader.GetString(1)
.CompanyID = objReader.GetInt32(2)
.UserLevel = objReader.GetInt32(3)
.FirstName = objReader.GetString(4)
.Lastname = objReader.GetString(5)
.Address = objReader.GetString(6)
.Zip = objReader.GetString(7)
.City = objReader.GetString(8)
.WorkPhone = objReader.GetString(9)
.Phone = objReader.GetString(10)
.WorkFax = objReader.GetString(11)
.Fax = objReader.GetString(12)
.WorkEmail = objReader.GetString(13)
.Email = objReader.GetString(14)
.UserIsActive = objReader.GetInt32(15)
.AutoLogin = objReader.GetInt32(16)
.AccountCreatedDate = objReader.GetDateTime(17)
.CreatedByID = objReader.GetInt32(18)
.AccountUpdatedDate = objReader.GetDateTime(19)
.UpdatedByID = objReader.GetInt32(20)
*********************************** TILL HIT *************************
End With
End While
objReader.Close()
objConn.Close()
Return objUserDetails
End Function
</code>Sv: objRepeater (OleDbDataReader) - få rätt format automatiskt?
VAD ska for each gå igenom t ex?
Är det raderna i din tabell?
Om du vill jämföra värden och datatyper kan du ju t ex göra en select case som ser ut som:
<code>
Select Case table1.rows(i)(0).GetType
Case is System.Type.GetType("System.String")
...
Case is System.Type.GetType("System.Integer")
...
Case is System.Type.GetType("System.Boolean")
...
End select
</code>
OBS! Torrkodat!
Kanske det hjälper,
//Mikael.NETSv: objRepeater (OleDbDataReader) - få rätt format automatiskt?