none
SQL DATA Count RRS feed

  • Question

  • Bonjour a tous j'ai un autre probleme
    Apres quelques semaine de travail j'ai reussi a comprendre un peut comment faire avec sql

    Mais la ou sa glisse pas c'est sur le contage des datarows
    j Arrive a avoir le compte total des ligne mais j'arrive pas a avoir le numero de la ligne
    selectionner par les bouton next et previus et les autres

    voici mon code complet et si vous pouver me dire ce qui ne va pas?

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    namespace WFA023
    {
    public partial class WorkersForm : Form
    {
    SqlConnection con;
    DataSet dts;
    SqlDataAdapter sda;
    int MaxRows = 0;
    int inc = 0;
    public WorkersForm()
    {
    InitializeComponent();
    }
    private void WorkersForm_Load(object sender, EventArgs e)
    {
    con = new SqlConnection();
    dts = new DataSet(); 
    con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\MyWorkers.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
    con.Open();
    String sql = "Select * From tblWorkers";
    sda = new SqlDataAdapter(sql,con);
    sda.Fill(dts,"Workers");
    NavRecords();
    MaxRows = dts.Tables["Workers"].Rows.Count;
    con.Close();
    //con.Dispose(); 
    lblCount.Text = inc + " sur " + MaxRows;
    }
    private void NavRecords()
    {
    DataRow dRow = dts.Tables["Workers"].Rows[inc];
    first_NameTextBox.Text = dRow.ItemArray.GetValue(1).ToString();
    last_NameTextBox.Text = dRow.ItemArray.GetValue(2).ToString();
    job_TitleTextBox.Text = dRow.ItemArray.GetValue(3).ToString();
    lblCount.Text = inc + " sur " + MaxRows;
     
    }
    private void NextBtn_Click(object sender, EventArgs e)
    {
    if (inc != MaxRows - 1)
    {
    inc++;
    NavRecords(); 
    }
    else 
    {
    MessageBox.Show("Last Records");
    }
    }
    private void PreviusBtn_Click(object sender, EventArgs e)
    {
    if (inc > 0)
    {
    inc--;
    NavRecords(); 
    }
    else
    {
    MessageBox.Show("First Record");
    }
    }
    private void LastBtn_Click(object sender, EventArgs e)
    {
    if (inc != MaxRows - 1)
    {
    inc = MaxRows - 1;
    NavRecords(); 
    }
    else
    {
    MessageBox.Show("Last Record");
    }
    }
    private void FirstBtn_Click(object sender, EventArgs e)
    {
    if (inc != 0)
    {
    inc = 0;
    NavRecords(); 
    }
    else
    {
    MessageBox.Show("First Record");
    }
    }
    private void AddNewBtn_Click(object sender, EventArgs e)
    {
    first_NameTextBox.Text = "";
    last_NameTextBox.Text = "";
    job_TitleTextBox.Text = "";
    }
    private void Savebtn_Click(object sender, EventArgs e)
    {
    DataRow dRow = dts.Tables["Workers"].NewRow();
    SqlCommandBuilder cb;
    cb = new SqlCommandBuilder(sda);
    dRow[1] = first_NameTextBox.Text;
    dRow[2] = last_NameTextBox.Text;
    dRow[3] = job_TitleTextBox.Text;
    dts.Tables["Workers"].Rows.Add(dRow);
    MaxRows = MaxRows + 1;
    inc = MaxRows - 1;
    sda.Update(dts, "Workers");
    MessageBox.Show("Entry Added");
    }
    private void UpdateBtn_Click(object sender, EventArgs e)
    {
    SqlCommandBuilder cb;
    cb = new SqlCommandBuilder(sda);
    DataRow dRow2 = dts.Tables["Workers"].Rows[inc];
    dRow2[1] = first_NameTextBox.Text;
    dRow2[2] = last_NameTextBox.Text;
    dRow2[3] = job_TitleTextBox.Text;
    sda.Update(dts, "Workers");
    MessageBox.Show("Record Updated");
    }
    private void DeleteBtn_Click(object sender, EventArgs e)
    {
    SqlCommandBuilder cb;
    cb = new SqlCommandBuilder(sda);
    dts.Tables["Workers"].Rows[inc].Delete();
    MaxRows--;
    inc = 0;
    NavRecords();
    sda.Update(dts, "Workers");
    MessageBox.Show("Record Delete");
    }
    }
    }

     Pour vous donnée une idée les ligne en rouge

    le compte total est de 4, mais le compte débute a 0

    ce qui fait dire que a la derniere ligne je suis a 3 et pouryant sa devrait indique 4 

    Le texte exacte indique 3 sur 4

     Merci

     

     


    BigDan
    vendredi 16 juillet 2010 03:29

Réponses

  • Bonjour a tous j'ai un autre probleme
    Apres quelques semaine de travail j'ai reussi a comprendre un peut comment faire avec sql

    Mais la ou sa glisse pas c'est sur le contage des datarows
    j Arrive a avoir le compte total des ligne mais j'arrive pas a avoir le numero de la ligne
    selectionner par les bouton next et previus et les autres

    voici mon code complet et si vous pouver me dire ce qui ne va pas?

    using System;
    
    using System.Collections.Generic;
    
    using System.ComponentModel;
    
    using System.Data;
    
    using System.Data.SqlClient;
    
    using System.Drawing;
    
    using System.Linq;
    
    using System.Text;
    
    using System.Windows.Forms;
    
    namespace WFA023
    
    {
    
    public partial class WorkersForm : Form
    
    {
    
    SqlConnection con;
    
    DataSet dts;
    
    SqlDataAdapter sda;
    
    int MaxRows = 0;
    
    int inc = 0;
    
    public WorkersForm()
    
    {
    
    InitializeComponent();
    
    }
    
    private void WorkersForm_Load(object sender, EventArgs e)
    
    {
    
    con = new SqlConnection();
    
    dts = new DataSet(); 
    
    con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\MyWorkers.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
    
    con.Open();
    
    String sql = "Select * From tblWorkers";
    
    sda = new SqlDataAdapter(sql,con);
    
    sda.Fill(dts,"Workers");
    
    NavRecords();
    
    MaxRows = dts.Tables["Workers"].Rows.Count;
    
    con.Close();
    
    //con.Dispose(); 
    
    lblCount.Text = inc + " sur " + MaxRows;
    
    }
    
    private void NavRecords()
    
    {
    
    DataRow dRow = dts.Tables["Workers"].Rows[inc];
    
    first_NameTextBox.Text = dRow.ItemArray.GetValue(1).ToString();
    
    last_NameTextBox.Text = dRow.ItemArray.GetValue(2).ToString();
    
    job_TitleTextBox.Text = dRow.ItemArray.GetValue(3).ToString();
    
    lblCount.Text = inc + " sur " + MaxRows;
    
     
    
    }
    
    private void NextBtn_Click(object sender, EventArgs e)
    
    {
    
    if (inc != MaxRows - 1)
    
    {
    
    inc++;
    
    NavRecords(); 
    
    }
    
    else 
    
    {
    
    MessageBox.Show("Last Records");
    
    }
    
    }
    
    private void PreviusBtn_Click(object sender, EventArgs e)
    
    {
    
    if (inc > 0)
    
    {
    
    inc--;
    
    NavRecords(); 
    
    }
    
    else
    
    {
    
    MessageBox.Show("First Record");
    
    }
    
    }
    
    private void LastBtn_Click(object sender, EventArgs e)
    
    {
    
    if (inc != MaxRows - 1)
    
    {
    
    inc = MaxRows - 1;
    
    NavRecords(); 
    
    }
    
    else
    
    {
    
    MessageBox.Show("Last Record");
    
    }
    
    }
    
    private void FirstBtn_Click(object sender, EventArgs e)
    
    {
    
    if (inc != 0)
    
    {
    
    inc = 0;
    
    NavRecords(); 
    
    }
    
    else
    
    {
    
    MessageBox.Show("First Record");
    
    }
    
    }
    
    private void AddNewBtn_Click(object sender, EventArgs e)
    
    {
    
    first_NameTextBox.Text = "";
    
    last_NameTextBox.Text = "";
    
    job_TitleTextBox.Text = "";
    
    }
    
    private void Savebtn_Click(object sender, EventArgs e)
    
    {
    
    DataRow dRow = dts.Tables["Workers"].NewRow();
    
    SqlCommandBuilder cb;
    
    cb = new SqlCommandBuilder(sda);
    
    dRow[1] = first_NameTextBox.Text;
    
    dRow[2] = last_NameTextBox.Text;
    
    dRow[3] = job_TitleTextBox.Text;
    
    dts.Tables["Workers"].Rows.Add(dRow);
    
    MaxRows = MaxRows + 1;
    
    inc = MaxRows - 1;
    
    sda.Update(dts, "Workers");
    
    MessageBox.Show("Entry Added");
    
    }
    
    private void UpdateBtn_Click(object sender, EventArgs e)
    
    {
    
    SqlCommandBuilder cb;
    
    cb = new SqlCommandBuilder(sda);
    
    DataRow dRow2 = dts.Tables["Workers"].Rows[inc];
    
    dRow2[1] = first_NameTextBox.Text;
    
    dRow2[2] = last_NameTextBox.Text;
    
    dRow2[3] = job_TitleTextBox.Text;
    
    sda.Update(dts, "Workers");
    
    MessageBox.Show("Record Updated");
    
    }
    
    private void DeleteBtn_Click(object sender, EventArgs e)
    
    {
    
    SqlCommandBuilder cb;
    
    cb = new SqlCommandBuilder(sda);
    
    dts.Tables["Workers"].Rows[inc].Delete();
    
    MaxRows--;
    
    inc = 0;
    
    NavRecords();
    
    sda.Update(dts, "Workers");
    
    MessageBox.Show("Record Delete");
    
    }
    
    }
    
    }

     Pour vous donnée une idée les ligne en rouge

    le compte total est de 4, mais le compte débute a 0

    ce qui fait dire que a la derniere ligne je suis a 3 et pouryant sa devrait indique 4 

    Le texte exacte indique 3 sur 4

     Merci

     

     


    BigDan

    Finalement je crois avoir contourner le probleme en ecrivant ce code a la places

     

    lblCount.Text = (inc + 1) +

     

    Merci

     

     


    BigDan

     

    " sur " + MaxRows;
    Mais je sais pas si la bonne facon de faire???
    vendredi 16 juillet 2010 04:04