webForumDet fria alternativet

Nästlad datareader

.NET

3 svar · 442 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Frågan#1

Hej

Jag ska hasha lösenord i en databas och måste därför köra en nästlad datareader. Men det går inte så bra. Efter ca 20 poster så står den bara kvar oh tuggar tills jag får ett connection timeout. Här är min kod:

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString);
        SqlCommand cmd = new SqlCommand("TEMP_GetNotConvertedPasswords", conn);
        cmd.CommandType = CommandType.StoredProcedure;
        conn.Open();
        SqlDataReader dataReader = cmd.ExecuteReader();

        while (dataReader.Read())
        {

            Response.Write(dataReader["userPassword"] + "</br>");
            Response.Flush();
            DBAccess db = new DBAccess();
            db.Parameters.Add(new SqlParameter("@userNumber", dataReader["userNumber"].ToString()));
            db.Parameters.Add(new SqlParameter("@password", FormsAuthentication.HashPasswordForStoringInConfigFile(dataReader["userPassword"].ToString(), "sha1")));
            db.ExecuteNonQuery("TEMP_ConvertPassword");
            db.Dispose();
        }
        dataReader.Close();
        dataReader.Dispose();
        conn.Close();
        conn.Dispose();
Medlem sedan maj 20012 812 inlägg
#2

Jag skulle rekomenderar dig att istället för den första DataReadern, använda dig av en DataTable istället. Då kan du stänga kopplingen till databasen och sedan kan du konvertera dina lösenord och spara ner dem till databasen igen...

- M

Medlem sedan jan. 20013 406 inlägg
#3

Ett Datatable måste man bygga upp förhand eller hur? Det går inte lika lätt som:
SqlDataReader dataReader = cmd.ExecuteReader();
?

Medlem sedan maj 20012 812 inlägg
#4

Du kan använda dig av SqlAdaptern och antingen fylla en datatable med den, eller hämta ut en datatable från adpatern (kommer inte ihåg vilket)

- M

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)