通过DataGridViewCheckBoxColumn从datagridview中选择多行并更新列数据 [英] selecting multiple rows from datagridview via DataGridViewCheckBoxColumn and updating a columns data

查看:323
本文介绍了通过DataGridViewCheckBoxColumn从datagridview中选择多行并更新列数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



实际主题说明问题。详细信息是;



我在Windows窗体中有一个datagridview,它包含来自sql表的数据。我插入了DataGridViewCheckBoxColumn的复选框。我需要检查一个或多个复选框(行)以更新选定的rowS。有一个包含DateTime的列。我尝试了很多代码,但都失败了,我猜是因为DateTime专栏。



i如果能给出一些代码示例,我们会很高兴。



提前谢谢,

解决方案

对不起,我只能在VB中这样做:

 < span class =code-keyword>对于 每个 as  DataGridViewRow   Datagridview1.Rows 
' 假设第一列有复选框
如果 row.Cells( 0 )。Value = True 然后

' 执行更新并确保您的DateTime格式正确
cmdUpdate = UPDATE TABLE ... SET ... WHERE ...

结束 如果
下一步


是scubapro你是绝对正确的。我的错,对不起。这是我尝试的代码; 
我将checkboxcolumn添加到datagrid

,但问题是,只有最新的行更新。我想我不能退货!



  private   void  button1_Click( object  sender,EventArgs e)
{
// sqlbağlantıdepogiriş
SqlConnection sconn = new SqlConnection() ;
sconn.ConnectionString = 数据源= R2D2 \\SQLEXPRESS;集成安全性= SSPI;初始目录= depom;
sconn.Open();
//
// 这里是选择开始的地方
//
列表< DataRow> lst = new List< DataRow>();


for int i = 0 ; i < malzemeDataGridView.Rows.Count; i ++)
{
if (Convert.ToBoolean(malzemeDataGridView.Rows [i] .Cells [ sec ]。值)== true
{

SqlCommand ins = SqlCommand();

ins.Connection = sconn;
ins.CommandText = update malzeme set depo ='Merkez',degistirmeT = @ degT,konum = @ knm where malzemeID = @ malz;

ins.Parameters.AddWithValue( @ malz,malzemeDataGridView.Rows [i] .Cells [ dataGridViewTextBoxColumn1]。Value.ToString());
ins.Parameters.AddWithValue( @ degT,DateTime.Now.ToString() );
ins.Parameters.AddWithValue( @ knm,textBox1.Text = );



// onsbağlantısıbaşlangıç
SqlCommand ons = new SqlCommand();

ons.Connection = sconn;
ons.CommandText = 插入tarihegore(malzemeID,konum,depo,sinif,marka,model,aciklama ,spectrumNO,seriNO,notlar,islemtarihi)值(@malzemeID,@ konum,@ depo,@ sinif,@ marka,@ model,@ aciklama,@ specononNO,@ seriNO,@ notlar,@ islemtarihi);

ons.Parameters.AddWithValue( @ malzemeID,malzemeIDTextBox.Text 。修剪());
ons.Parameters.AddWithValue( @ konum,konumTextBox.Text.Trim() );
ons.Parameters.AddWithValue( @ depo,depoTextBox.Text.Trim() );
ons.Parameters.AddWithValue( @ sinif,sinifTextBox.Text.Trim() );
ons.Parameters.AddWithValue( @ marka,markaTextBox.Text.Trim() );
ons.Parameters.AddWithValue( @ model,modelTextBox.Text.Trim() );
ons.Parameters.AddWithValue( @ aciklama,aciklamaTextBox.Text.Trim() );
ons.Parameters.AddWithValue( @ spectrumNO,spectrumNOTextBox.Text.Trim() );
ons.Parameters.AddWithValue( @ seriNO,seriNOTextBox.Text.Trim() );
ons.Parameters.AddWithValue( @ notlar,depoTextBox.Text.Trim() + + konumTextBox.Text.Trim()+ dan Merkeze geldi。);
ons.Parameters.AddWithValue( @ islemtarihi,DateTime.Now.ToString() );

// onsbağlantısısonu

< span class =code-comment> //
sconn.Open();
MessageBox.Show(markaTextBox.Text.Trim() + + modelTextBox.Text.Trim()+ depoya girdi DepoyaGiriş );



ins.ExecuteNonQuery();
ons.ExecuteNonQuery();




尝试
{
this .malzemeTableAdapter.Tümünü_Göster( this .dataSet1.malzeme);
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex 。信息);
}

sconn.Close();
}

}
}


  for  int  i =  0 ; i <  malzemeDataGridView.Rows.Count; i ++)
{
if (Convert.ToBoolean(malzemeDataGridView。行[i] .Cells [ 组合列的名称]。值)== true
{
// your your这里有自己的代码...

}





感谢所有..


hi all,

actually topic tells the problem. details are;

i have a datagridview in windows forms which has data from an sql table. i've inserted checkboxes with DataGridViewCheckBoxColumn. I need to check one or multiple checkboxes(rows) to update selected rowS. there is a column which includes DateTime. I tried so many codes but all failed, i guess because of DateTime column.

i will be glad if you can give some examples as code.

Thanks in advance,

解决方案

Sorry, I can only do this in VB:

For each row as DataGridViewRow in Datagridview1.Rows
'Assuming first column has the checkboxes
   If row.Cells(0).Value = True Then

   'Carry out update and make sure your DateTime is properly formatted
   cmdUpdate = "UPDATE TABLE ... SET ... WHERE ..."

   End If
Next


yes scubapro you are absolutlely right. My fault sorry. Here is the code i try;
i added checkboxcolumn to the datagrid

but the problem is, only the uppest row updates. i guess i cannot return it!


private void button1_Click(object sender, EventArgs e)
        {
            //sql bağlantı depo giriş
            SqlConnection sconn = new SqlConnection();
            sconn.ConnectionString = "Data Source=R2D2\\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=depom";
            sconn.Open();
//
// here is where selection starts
//
            List<DataRow> lst = new List<DataRow>();


            for (int i = 0; i < malzemeDataGridView.Rows.Count; i++)
            {
                if (Convert.ToBoolean(malzemeDataGridView.Rows[i].Cells["sec"].Value) == true)
                {

                    SqlCommand ins = new SqlCommand();

                    ins.Connection = sconn;
                    ins.CommandText = "update malzeme set depo='Merkez', degistirmeT=@degT, konum=@knm where malzemeID=@malz";

                    ins.Parameters.AddWithValue("@malz", malzemeDataGridView.Rows[i].Cells["dataGridViewTextBoxColumn1"].Value.ToString());
                    ins.Parameters.AddWithValue("@degT", DateTime.Now.ToString());
                    ins.Parameters.AddWithValue("@knm", textBox1.Text = "");



                    //ons bağlantısı başlangıç
                    SqlCommand ons = new SqlCommand();

                    ons.Connection = sconn;
                    ons.CommandText = "insert into tarihegore (malzemeID, konum, depo, sinif, marka, model, aciklama, spectrumNO, seriNO, notlar, islemtarihi) values (@malzemeID, @konum, @depo, @sinif, @marka, @model, @aciklama, @spectrumNO, @seriNO, @notlar, @islemtarihi)";

                    ons.Parameters.AddWithValue("@malzemeID", malzemeIDTextBox.Text.Trim());
                    ons.Parameters.AddWithValue("@konum", konumTextBox.Text.Trim());
                    ons.Parameters.AddWithValue("@depo", depoTextBox.Text.Trim());
                    ons.Parameters.AddWithValue("@sinif", sinifTextBox.Text.Trim());
                    ons.Parameters.AddWithValue("@marka", markaTextBox.Text.Trim());
                    ons.Parameters.AddWithValue("@model", modelTextBox.Text.Trim());
                    ons.Parameters.AddWithValue("@aciklama", aciklamaTextBox.Text.Trim());
                    ons.Parameters.AddWithValue("@spectrumNO", spectrumNOTextBox.Text.Trim());
                    ons.Parameters.AddWithValue("@seriNO", seriNOTextBox.Text.Trim());
                    ons.Parameters.AddWithValue("@notlar", depoTextBox.Text.Trim() + " " + konumTextBox.Text.Trim() + " dan Merkeze geldi.");
                    ons.Parameters.AddWithValue("@islemtarihi", DateTime.Now.ToString());

                    //ons bağlantısı sonu

                    //sconn.Open();
                    MessageBox.Show(markaTextBox.Text.Trim() + " " + modelTextBox.Text.Trim() + " depoya girdi", "Depoya Giriş");



                    ins.ExecuteNonQuery();
                    ons.ExecuteNonQuery();




                    try
                    {
                        this.malzemeTableAdapter.Tümünü_Göster(this.dataSet1.malzeme);
                    }
                    catch (System.Exception ex)
                    {
                        System.Windows.Forms.MessageBox.Show(ex.Message);
                    }

                    sconn.Close();
                }

            }
        }


          for (int i = 0; i < malzemeDataGridView.Rows.Count; i++)
          {
              if (Convert.ToBoolean(malzemeDataGridView.Rows[i].Cells["the name of the combocolumn"].Value) == true)
              {
//your own code here...

              }



thanks all...


这篇关于通过DataGridViewCheckBoxColumn从datagridview中选择多行并更新列数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆