neda_dela
جمعه 17 دی 1389, 00:52 صبح
سلام دوستان
من توی فیلدهای بانکم فیلد ردیف هم دارم حالا بعد از حذف یک رکورد مثلا با شماره ردیف 3 شماره ردیف ها سورت نمیشه و 1 و 2 و 4 و ... می مونه . حالا من میخام طوری بشه که با حذف رکورد شماره ردیف سورت بشه
البته باید از کمک های csharpprogrammer که واقعا خیلی کمکم کردن بسیار تشکر کنم
این کدهایی رو هم میذارم ایشون من رو راهنمایی کردن حالا دوستان این کد تا حدودی کار می کنه مثلا بعد از انتخاب یه رکورد و حذف اون درست کار می کنه اما با انتخاب چند رکورد و حذف اونها درست عمل نمیشه
لطفا دوستان من رو کمک کنین
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace dg_chb_del
{
publicpartialclass Form1 : Form
{
List<string> lstid = newList<string>(); // جهت نگهداری آی دی هایی که کاربر آنها را تیک زده
SqlDataReader dr;
SqlDataAdapter da;
SqlConnection con;
SqlCommand cmd;
DataSet ds;
BindingSource bs;
public Form1()
{
InitializeComponent();
da = new SqlDataAdapter();
con = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=db_tel;Integrated Security=True");
cmd = new SqlCommand();
ds = new DataSet();
bs = new BindingSource();
}
privatevoid Form1_Load(object sender, EventArgs e)
{
da = new SqlDataAdapter("select * from tbl_sabt", con);
da.Fill(ds, "tbl_sabt");
bs.DataSource = ds.Tables["tbl_sabt"];
dataGridView1.DataSource = bs;
dataGridView1.Rows[0].ReadOnly = true;
}
privatevoid button1_Click(object sender, EventArgs e)// بعد از تیک زدن رکوردهای مورد نظر باید دکمه تایید زده شود تا آی رکورد درون لیست قرار گیرد
{
lstid.Clear();
for (int Count = 0; Count < dataGridView1.RowCount; Count++)
{
Boolean Checkedid = Convert.ToBoolean(dataGridView1.Rows[Count].Cells["chbox"].Value);
if (Checkedid)
{
lstid.Add(dataGridView1.Rows[Count].Cells[1].Value.ToString());
}
}
}
privatevoid button2_Click(object sender, EventArgs e)
{
if (DialogResult.Yes == MessageBox.Show("آیا می خواهید این رکورد را حذف کنید", "اخطار", MessageBoxButtons.YesNo))
{
for (int i = 0; i < lstid.Count(); i++)
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
string str1 = "delete from tbl_sabt where id="+lstid[i]+"";
cmd.Connection = con;
cmd.CommandText = str1;
cmd.ExecuteNonQuery();
con.Close();
dataGridView1.Refresh();
dataGridView1.Rows.Remove(dataGridView1.CurrentRow );
}
for (int i =int.Parse(lstid[0]); i <=dataGridView1.Rows.Count; i++)
{
int temp = i + 1 - 1;
int temp1 = i + 1;
if (con.State == ConnectionState.Closed)
{
con.Open();
}
cmd.Connection = con;
cmd.CommandText = "update tbl_sabt set id='" + temp + "' where id=" + temp1;
cmd.ExecuteReader();
con.Close();
dataGridView1.Refresh();
}
}
}
}
}
من توی فیلدهای بانکم فیلد ردیف هم دارم حالا بعد از حذف یک رکورد مثلا با شماره ردیف 3 شماره ردیف ها سورت نمیشه و 1 و 2 و 4 و ... می مونه . حالا من میخام طوری بشه که با حذف رکورد شماره ردیف سورت بشه
البته باید از کمک های csharpprogrammer که واقعا خیلی کمکم کردن بسیار تشکر کنم
این کدهایی رو هم میذارم ایشون من رو راهنمایی کردن حالا دوستان این کد تا حدودی کار می کنه مثلا بعد از انتخاب یه رکورد و حذف اون درست کار می کنه اما با انتخاب چند رکورد و حذف اونها درست عمل نمیشه
لطفا دوستان من رو کمک کنین
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace dg_chb_del
{
publicpartialclass Form1 : Form
{
List<string> lstid = newList<string>(); // جهت نگهداری آی دی هایی که کاربر آنها را تیک زده
SqlDataReader dr;
SqlDataAdapter da;
SqlConnection con;
SqlCommand cmd;
DataSet ds;
BindingSource bs;
public Form1()
{
InitializeComponent();
da = new SqlDataAdapter();
con = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=db_tel;Integrated Security=True");
cmd = new SqlCommand();
ds = new DataSet();
bs = new BindingSource();
}
privatevoid Form1_Load(object sender, EventArgs e)
{
da = new SqlDataAdapter("select * from tbl_sabt", con);
da.Fill(ds, "tbl_sabt");
bs.DataSource = ds.Tables["tbl_sabt"];
dataGridView1.DataSource = bs;
dataGridView1.Rows[0].ReadOnly = true;
}
privatevoid button1_Click(object sender, EventArgs e)// بعد از تیک زدن رکوردهای مورد نظر باید دکمه تایید زده شود تا آی رکورد درون لیست قرار گیرد
{
lstid.Clear();
for (int Count = 0; Count < dataGridView1.RowCount; Count++)
{
Boolean Checkedid = Convert.ToBoolean(dataGridView1.Rows[Count].Cells["chbox"].Value);
if (Checkedid)
{
lstid.Add(dataGridView1.Rows[Count].Cells[1].Value.ToString());
}
}
}
privatevoid button2_Click(object sender, EventArgs e)
{
if (DialogResult.Yes == MessageBox.Show("آیا می خواهید این رکورد را حذف کنید", "اخطار", MessageBoxButtons.YesNo))
{
for (int i = 0; i < lstid.Count(); i++)
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
string str1 = "delete from tbl_sabt where id="+lstid[i]+"";
cmd.Connection = con;
cmd.CommandText = str1;
cmd.ExecuteNonQuery();
con.Close();
dataGridView1.Refresh();
dataGridView1.Rows.Remove(dataGridView1.CurrentRow );
}
for (int i =int.Parse(lstid[0]); i <=dataGridView1.Rows.Count; i++)
{
int temp = i + 1 - 1;
int temp1 = i + 1;
if (con.State == ConnectionState.Closed)
{
con.Open();
}
cmd.Connection = con;
cmd.CommandText = "update tbl_sabt set id='" + temp + "' where id=" + temp1;
cmd.ExecuteReader();
con.Close();
dataGridView1.Refresh();
}
}
}
}
}