none
C# 为什么更新功能在普通button可以,在toolStripButton就不能实现功能呢? RRS feed

  • 问题

  • 在一个datatable 的数据表中进行与数据库的更新操作,其中修改的最后一行的rowState值,在通过button按钮运行时,显示是modified,但是用toolStripButton按钮重复上面操作时,rowState的值就变成了Unchanged。感觉很诡异,想要详细了解一下,toolStripButton按钮和button按钮控件,在操作datatable的差异性?

    2014年9月2日 7:04

答案

  • Hello,

    >>感觉很诡异,想要详细了解一下,toolStripButton按钮和button按钮控件,在操作datatable的差异性?

    请问你是如何用这两个button来检测datatablerowstate的呢? 他们都是button,应该不会有针对datatable的差异。

    >>在通过button按钮运行时,显示是modified,但是用toolStripButton按钮重复上面操作时,rowState的值就变成了Unchanged

    按照你的描述,我绑定了一个dataset到一个datagridview然后再datagridview里去改了第一行然后分别按普通buttontoolstripbutton,但是得到的结果是rowstate都是modified:

    public partial class Form1 : Form
    
        {
    
            private DataSet ds = new DataSet();
    
            private SqlConnection conn = new SqlConnection();
    
            private SqlDataAdapter da = null;
    
            public Form1()
    
            {
    
                InitializeComponent();
    
            }
    
    
            private void Form1_Load(object sender, EventArgs e)
    
            {
    
                conn.ConnectionString = @"Server=(localdb)\Projects;Database=DFDB;Trusted_Connection=True;";
    
                try
    
                {
    
                    conn.Open();
    
                    SqlCommand cmd = new SqlCommand("Select * from [Order]", conn);
    
                    da = new SqlDataAdapter(cmd);
    
                    da.Fill(ds);
    
                }
    
                catch (Exception)
    
                {
    
    
                    throw;
    
                }
    
                finally
    
                {
    
                    conn.Close();
    
                }
    
    
                this.dataGridView1.DataSource = ds.Tables[0];
    
            }
    
    
            private void button1_Click(object sender, EventArgs e)
    
            {
    
                var RowState = this.ds.Tables[0].Rows[0].RowState.ToString();
    
                //this.da.Update(ds);
    
            }
    
    
            private void toolStripButton1_Click(object sender, EventArgs e)
    
            {
    
                var RowState = this.ds.Tables[0].Rows[0].RowState.ToString();
    
                //this.da.Update(ds);
    
            }
    
        }
    

    你可以试下的代码。

    Regards.


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年9月3日 2:37
    版主