Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - 24K

#1
.NET (C#, VB.NET, ASP) / Re: Ayuda con DataGridView
29 Diciembre 2011, 07:39 AM
Hola bitaziko, yo hice algo así pero en C#, te lo paso de todas maneras haber si lo cambias nada mas.
En primer lugar cree una clase y en la clase un metodo llamado actualizarDataGrid,
en el form_load llamo a ese metodo y tambien cada bes que guardo algo en el evento click del boton Guardar, bueno algo asi:
Código (csharp) [Seleccionar]
public void actualizarDataGrid(DataGridView dtg, string tabla)
        {
            da = new SqlDataAdapter("SELECT * FROM " + tabla, cadena);
            dt = new DataTable();
            da.Fill(dt);
            dtg.DataSource = dt;
        }

Como te das cuenta, es una metodo que no vuelve valores; y necesita dos argumentos, un datagridview y un string; el dataGridView es el que vas a actualizar, y el estring es la tabla que quieres que aparezca en ese dataGridView.
Ahora como utilizo, como ya sabes en la cabecera del codigo de tu formulario declaras la clase asi:
Código (csharp) [Seleccionar]
namespace programacionI
{
    public partial class frmDocente : Form
    {
        public frmDocente()
        {
            InitializeComponent();
        }

        docentes doc = new docentes();
        private bool numero = false;

Si te das cuenta mi clase se llama docentes y estoy declarando un nuevo objeto "doc" del tipo docentes. Ahora como utilizamos el metodos en el form, asi:
Código (csharp) [Seleccionar]
private void frmDocente_Load(object sender, EventArgs e)
        {
            doc.actualizarDataGrid(dtgDocentes, "docentes");
            dtgDocentes.Columns[0].Width = 40;
            dtgDocentes.Columns[1].Width = 255;
        }

ves que en el formulario frmDocentes ni bien abre me va a mostrar en el dataGridView "dtgDocentes" todos los datos ya guardados en la tabla "docentes" de mi base de datos. Ademas cambio el tamaño de las columnas en tiempo de ejecucion.
Ahora agregas un nuevo registro, tienes tu boton "btnGuardar" y le colocas este codigo:
Código (csharp) [Seleccionar]
private void btnGuardar_Click(object sender, EventArgs e)
        {
            if ((txtID.Text != "") && (txtApellidos.Text != ""))
            {
                int codigo = Convert.ToInt16(this.txtID.Text);
                string apellidos = txtApellidos.Text;
                doc.guardarDocente(codigo, apellidos, dtgDocentes);
            }
            else
            {
                MessageBox.Show("Uno o mas campos no fueron llenados", "Error", MessageBoxButtons.OK,
                    MessageBoxIcon.Warning);
            }
            doc.limpiarTextBox(this);
            txtID.Focus();
        }

Como ves verifico que los textBox no esten vacios, Luego capturo el codigo y apellido y los llevo a mi metodo "guardarDocente"; ahi es donde utilizo el metodo"actualizarDatGrid", ya que el codigo de "guardarDocente" es este:
Código (csharp) [Seleccionar]
public void guardarDocente(int codigo, string nombres, DataGridView dtg)
        {
            cnx = new SqlConnection(cadena);
            cmd = new SqlCommand();
            cmd.Connection = cnx;
            cmd.CommandText = "INSERT INTO docentes (iddoc, nomdoc) VALUES (@iddoc, @nomdoc)";
            cmd.Parameters.AddWithValue("@iddoc", codigo);
            cmd.Parameters.AddWithValue("@nomdoc", nombres);
            cnx.Open();
            try
            {
                cmd.ExecuteNonQuery();
                MessageBox.Show("Docente ingresado exitosamente");
                actualizarDataGrid(dtg, "docentes");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            cnx.Close();
        }

Como vez, guardo el codigo y el nombre y apellido del docente, si se guarda bien, llamo al metodo actualizarDataGrid, si no solo sale un mensaje de error. Para que no te compliques (si lo vez complicado) utilizas el metodo actualizarDataGrid aparte en el boton y no en el metodo guardarDocente. No se como poner imagenes de mi Pc, sino te mostraria como hice mi formulario para que te guies.
Espero haberte ayudado, algun dia me dedicare a aprender vb.net
#2
.NET (C#, VB.NET, ASP) / SQL SERVER en visual C#
29 Diciembre 2011, 07:09 AM
Hola a todos, tengo una pregunta o un problema con sql server y visual studio c#.
ahora tengo una base de datos con una tabla llamada "horario", en esta tabla guardo el dia, el ciclo, el curso, el aula, el docente, la hora de inicio y la hora final. Ya se estan dando cuenta de que se trata. bueno la idea es que al ingresar un nuevo horario no se crucen; la idea original es hacer un select y obtener las hora de inicio y horas finales de los cursos ya guardados en un cierto dia, en una cierta aula, asi:
"SELECT * FROM horario WHILE numaula=@numaula AND iddia=@iddia"
como se darán cuenta el numaula es el numero de aula que se da la clase y se obtiene de un comboBox al igual que iddia que es el numero de dia que se dicta la clase.
Asi obtengo una serie de horas iniciales y horas finales de las diferentes clases que ya se dan en esa situación.
Ahora el problema que tengo es como voy a comparar las horas nuevas a ingresar con cada una de las horas que ya estan guardadas para evitar que un curso se registre el mismo dia, la misma aula y en horas cruzadas.
Espero me hayan entendido. agradezco su ayuda, su tiempo y sus aportes.
#3
Bien lo que me faltaba; gracias por todo ahora con toda la información recopilada podre terminar de hacer el proyecto; haber si luego les informo de mis avances. Gracias por todo seba123neo fuiste de mucha ayuda, ahora a ejecutar todo lo aprendido y luego les cuento.
#4
Bien bien bien, ya casi lo tengo, la version que tengo en casa es full, no se cual sera de la escuela, pero el docente pone en el data source el numero ip seguido de otro nombre algo asi:
"data source=10.11.0.50\colegio;... "
pero aun no sé como haces para que la aplicacion lea el archivo .ini, ya lo intente como te puse mas ariba pero no me resultó.
Por otro lado encontre algo sobre un archivo de configuración (app.config), agregé ese elemento a mi proyecto le puse el codigo correspondiente
http://geeks.ms/wikis/arquitecturasoftware/manejando-cadenas-de-conexi-243-n-en-net-con-c-3-3.aspx
y me dio con mi propia cadena de conexión, el problema es como hago para que me lea el servidor o el nombre de la pc en red que esta configurado por defecto, probé en mi pc con [local] y no dio, también con .\SQLEXPRESS y tampoco (ya me aclaraste por que), pero lo quiero dejar listo para que como tu dices llevar solo el ejecutable, restaurar mi base de datos y tatán, exponer mi trabajo. nada más. Te sigo agradeciendo y seguiré buscando soluciones.
#5
Haber haber, en primer lugar gracias por tu respuesta, es muy buena, solo me quedan algunas dudas:
lo del backup ya está; incluso genero el script de mi base de datos y luego importo la base de datos a la pc de la escuela, listo. lo que me quedaba duda es acerca de la cadena de conexión, si lo mandaba a otra pc de hecho que cambia la cadena de conexión; entonces me mencionaste el archivo .ini, lo cual me pregunto que pongo en el archivo.ini, la cadena de conexión de mi pc o de la escuela, (yo creo que sería de la escuela obvio); y donde guardo ese archivo .ini, en la misma carpeta que esta mi ejecutable?; y como lee ese archivo?, haber si estoy en lo correcto:

Código (csharp) [Seleccionar]

public string cadena = "[nombre de archivo].ini";


o

Código (csharp) [Seleccionar]
public string cadena = "[ruta del archivo].ini";

Bueno gracias por tu respuesta, probaré los resultados primero en la casa de un compañero y luego les cuento. ;)
#6
por que probaría con eso ya tengo la base de datos hecha y llena, seria tener que volver a tipear toda la información, no lo veo nada alentador tu solución. debe haber una forma en que los desarrolladores de software entregues sus trabajos sin tener que instalarles  al cliente el sql server. Cuando tu adquieres un programa que implique guardar datos, no te instalas el sql server, sino que este programa ya viene implementado con su motor de datos; es por eso que quiero saber como se hace esto.
sigo buscando y sigo buscando y encontre esto, pero no se por que ami no me funciona.

[youtube=425,350]http://www.youtube.com/watch?v=V6Oe2av1uOo[/youtube]

cuando agrego mi base de datos me dice que no se puede por que esta siendo usada por otra persona o programa, que cierre todas las aplicaciones que puedan estar usándolas. pero no tengo nada abierto  >:(; luego detengo mi servidor de bases de datos y se agrega  ;D , pero luego no reconoce o no puede leer los elementos de mi base de datos "error en la instancia"  :huh:; ya intente de todas formas, iniciando de nuevo el servidor, etc, etc etc y nada.
Bueno a seguir buscando, pero en cuanto encuentre la solución se los paso para que nadie vuelva a renegar y sufrir como yo.
#7
c++, y por que no está C#?
#8
Hola a todos, bueno presentándome y esperando que este tema esté en el lugar correcto, soy estudiante de Ing. de sistemas en Perú, y para terminar el ciclo nos pidieron un proyecto final en C#. Mi proyecto ya está terminado lo malo es que incluye una conexión con base de datos SQL server. Lo que no puedo hacer es crear el instalador de mi proyecto junto con la base de datos para así llevar mi proyecto a clase, instalarlo en la computadora del salón y exponer mi trabajo, la idea es no tener que instalar el visual studio 2010 ni el sql server 2005 el clase y llevar todos los datos, se me va a hacer muy dificil hacer todo eso.
Espero me puedan ayudar, ya investigue y hablan de un script de la base de datos, pero no conozco el tema de los scripts y la verdad quisiera algo mas detallado para poder explicarlo en clase.
Gracias por la ayuda que me puedan brindar.