- El código que hemos añadido a nuestra aplicación de consola para poder efectuar el guardado de datos en nuestra base de datos es este:
static void guardarEstadisticasugadoresRetirados()
{
SqlConnection conexion = null;
DirectoryInfo directorio = new DirectoryInfo(@"D:\JugadoresNBA\");
FileInfo[] archivos = directorio.GetFiles();
String linea = String.Empty;
int cont = 0;
string jugador = String.Empty;
string temporada = String.Empty;
string equipo = String.Empty;
string Pjugados = String.Empty;
string minutos = String.Empty;
string puntos = String.Empty;
string rebotes = String.Empty;
string tapones = String.Empty;
string asistencias = String.Empty;
string robos = String.Empty;
bool totalCArrera = false;
Boolean tieneTemporadas = false;
foreach (FileInfo archivo in archivos)
{
HtmlDocument doc = new HtmlDocument();
HtmlNode.ElementsFlags["br"] = HtmlElementFlag.Empty;
doc.OptionWriteEmptyNodes = true;
doc.Load(archivo.FullName);
string selector = "//table[@class='tablehead']//tr";
HtmlNodeCollection nodoColecion = doc.DocumentNode.SelectNodes(selector);
//Comprobamos si el fichero contiene lel texto Last 5 Games.Si no contiene esto es un jugador retirado
if (nodoColecion != null && !doc.Text.Contains("Last 5 Games") && !doc.Text.Contains("OPP") && !doc.Text.Contains("Postseason") )
{
foreach (HtmlNode nodo in nodoColecion)
{
if (!nodo.InnerText.Contains("STATS") && !nodo.InnerText.Contains("SEASON"))
{
conexion = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
try
{
cont++;
if (!nodo.InnerText.Contains("Career") && !nodo.InnerHtml.Contains("<th>"))
{
Console.WriteLine(cont.ToString());
Console.WriteLine();
jugador = archivo.Name.Substring(0, archivo.Name.Length - 5);
Console.WriteLine(jugador);
temporada = nodo.ChildNodes[0].InnerText;
Console.WriteLine(temporada);
equipo = nodo.ChildNodes[1].InnerText;
Console.WriteLine(equipo);
Pjugados = nodo.ChildNodes[2].InnerText;
Console.WriteLine(Pjugados);
minutos = nodo.ChildNodes[4].InnerText;
Console.WriteLine(minutos);
puntos = nodo.ChildNodes[19].InnerText;
Console.WriteLine(puntos);
rebotes = nodo.ChildNodes[13].InnerText;
Console.WriteLine(rebotes);
tapones = nodo.ChildNodes[15].InnerText;
Console.WriteLine(tapones);
asistencias = nodo.ChildNodes[14].InnerText;
Console.WriteLine(asistencias);
robos = nodo.ChildNodes[16].InnerText;
Console.WriteLine(robos);
Console.WriteLine();
totalCArrera = false;
tieneTemporadas = true;
}
else if (tieneTemporadas)
{
totalCArrera = true;
Console.WriteLine(cont.ToString());
Console.WriteLine();
jugador = archivo.Name.Substring(0, archivo.Name.Length - 5);
Console.WriteLine(jugador);
temporada = nodo.ChildNodes[0].InnerText;
Console.WriteLine(temporada);
equipo = "RESUMEN CARRERA";
Console.WriteLine(equipo);
Pjugados = nodo.ChildNodes[1].InnerText;
Console.WriteLine(Pjugados);
minutos = nodo.ChildNodes[3].InnerText;
Console.WriteLine(minutos);
puntos = nodo.ChildNodes[18].InnerText;
Console.WriteLine(puntos);
rebotes = nodo.ChildNodes[12].InnerText;
Console.WriteLine(rebotes);
tapones = nodo.ChildNodes[14].InnerText;
Console.WriteLine(tapones);
asistencias = nodo.ChildNodes[13].InnerText;
Console.WriteLine(asistencias);
robos = nodo.ChildNodes[15].InnerText;
Console.WriteLine(robos);
Console.WriteLine();
totalCArrera = true;
tieneTemporadas = false;
}
conexion.Open();
SqlCommand Comm = conexion.CreateCommand();
Comm.CommandText = "dbo.GuardarEstadisticasJugadorNBA";
Comm.CommandType = CommandType.StoredProcedure;
Comm.Parameters.Add("@Jugador", SqlDbType.VarChar, 500).Value = jugador;
Comm.Parameters.Add("@Equipo", SqlDbType.VarChar, 50).Value = equipo;
Comm.Parameters.Add("@temporada", SqlDbType.VarChar, 50).Value = temporada;
Comm.Parameters.Add("@Pjugados", SqlDbType.Int).Value = Pjugados;
Comm.Parameters.Add("@Minutos", SqlDbType.Float).Value = minutos.Replace('.', ',');
Comm.Parameters.Add("@Puntos", SqlDbType.Float).Value = puntos.Replace('.',',');
Comm.Parameters.Add("@rebotes", SqlDbType.Float).Value = rebotes.Replace('.', ',');
Comm.Parameters.Add("@tapones", SqlDbType.Float).Value = tapones.Replace('.', ',');
Comm.Parameters.Add("@asistencias", SqlDbType.Float).Value = asistencias.Replace('.', ',');
Comm.Parameters.Add("@robos", SqlDbType.Float).Value = robos.Replace('.', ',');
Comm.Parameters.Add("@totCArrera", SqlDbType.Bit).Value = totalCArrera;
Comm.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
Console.ReadLine();
}
finally
{
conexion.Close();
conexion.Dispose();
}
}
}
}
}
Console.WriteLine("Operacion completada");
Console.ReadLine();
}