我的代码在应该跳转到某个函数';不要

本文关键字:函数 不要 代码 我的 | 更新日期: 2023-09-27 18:04:02

下面是我跟踪志愿者的程序。我的问题是,对于下面的两个函数,当调用fillListBoxData()时,大约进行到一半时,它会跳到fillDataGridView函数。在第15行dataAda1.Fill(datTab3);,程序立即跳到fillDataGridView(string fullName)。我不知道为什么。

有人能帮我吗,让这个程序停止这样做。

public void fillListBoxData()
    {
        //Open connection
        //found in app.config
        using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.Database1ConnectionString))//database ONE
        {
            //open the connection
            conn.Open();
            // Create new DataAdapter
            using (SqlDataAdapter dataAda1 = new SqlDataAdapter("SELECT (firstName + ' ' + lastName) AS NAME FROM dbo.VolunteerContactInfo", conn))
            {
                // Use DataAdapter to fill DataTable
                DataTable datTab3 = new DataTable();
                dataAda1.Fill(datTab3);                
                //assign the dataTable as the dataSource for the listbox
                volList.DataSource = datTab3;
                //display member needed to show text
                volList.DisplayMember = "NAME";
                conn.Close();
            }
        }
    }
void fillDataGridView(string fullName)
    {
        string tableName = "dbo." + fullName;
        // Open connection
        using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.Database2ConnectionString))//database TWO
        {
            //open the connection
            conn.Open();
            // Create new DataAdapter
            using (SqlDataAdapter dataAda = new SqlDataAdapter("SELECT * FROM " + @tableName, conn))
            {
                // Use DataAdapter to fill DataTable
                DataTable datTab = new DataTable();
                dataAda.Fill(datTab);
                volWorkDataGrid.DataSource = datTab;
            }
            conn.Close();
        }
    }

我的代码在应该跳转到某个函数';不要

在"初始化"数据时,使用临时标志来抑制事件处理程序。

bool _suppressEvent = false;
public void fillListBoxData() 
{
    try
    {
         _suppressEvent = true;
         ...Do whatever you want here
    }
    finally
    {
        _suppressEvent = false;
    }
}
void volList_SelectedIndexChanged(object sender, EventArgs e)
{
    if( _suppressEvent ) return;
    ...
}

try/finally确保无论try子句内部发生什么(异常、返回等(,您的抑制标志都将始终关闭。否则,您可能会得到一些难以追踪的奇怪行为。