我正在研究C#项目,所以我有2个函数,我只需要完成function1然后我希望函数2执行,否则函数2必须阻止执行(Didnot Execute !!)。
我的功能1称为SaveDuplicatCourse()
,功能2称为Save()
,彼此的代码如下:
public void SaveDuplicatCourse()
{
if(con.State !=ConnectionState.Open)
con.Open();
List<int> IDs = new List<int>();
foreach (DataGridViewRow r in dataGridViewStudents.Rows)
{
if (r.Cells[0].Value != null && bool.Parse(r.Cells[0].Value.ToString()))
{
IDs.Add(int.Parse(r.Cells[1].Value.ToString()));
}
}
foreach (int i in IDs)
{
try
{
SqlCommand com = new SqlCommand(@"Insert into DuplicateCourses
values(" + i + "," + CCID + ")", con);
com.ExecuteNonQuery();
}
catch (Exception)
{
MessageBox.Show("They are exist");
}
}
con.Close();
}
public void Save()
{
SqlCommand com = new SqlCommand(@"Delete from students
where
Course_ID = " + ID, con);
con.Open();
com.ExecuteNonQuery();
List<int> IDs = new List<int>();
foreach (DataGridViewRow r in dataGridViewStudents.Rows)
{
if (r.Cells[0].Value!=null && bool.Parse(r.Cells[0].Value.ToString()))
{
IDs.Add(int.Parse(r.Cells[1].Value.ToString()));
}
}
foreach (int i in IDs)
{
com.CommandText = "Insert into students values(" + i + "," + ID + ")";
com.ExecuteNonQuery();
}
con.Close();
}
我在ButtonClick
中调用了这些函数,如下所示
private void buttonSaveChanges_Click(object sender, EventArgs e)
{
SaveDuplicatCourse();
Save();
}
请告诉我将如何完成。
答案 0 :(得分:1)
在您的示例中,我没有看到异步发生的任何事情,因此您的代码应该以您正在寻找的方式执行。现在,如果你要求成功执行(而不是任何不成功的,即没有删除行),这是一个不同的故事,并且可以以各种不同的方式处理。但在我们走这条路之前,似乎你已经得到了理想的结果。设置断点并逐步执行每行代码以查看执行顺序。
答案 1 :(得分:1)
向function1添加boolean
值。如果返回false,请不要运行function2。如果返回true,则运行function2。
boolean saveDuplicateCourseCompleted = false;
private void buttonSaveChanges_Click(object sender, EventArgs e)
{
if (saveDuplicateCourseCompleted == true)
Save();
else
// or do something else.
}
请注意以下示例:
public boolean SaveDuplicatCourse()
{
if(con.State !=ConnectionState.Open)
con.Open();
List<int> IDs = new List<int>();
foreach (DataGridViewRow r in dataGridViewStudents.Rows)
{
if (r.Cells[0].Value != null && bool.Parse(r.Cells[0].Value.ToString()))
{
IDs.Add(int.Parse(r.Cells[1].Value.ToString()));
}
}
foreach (int i in IDs)
{
try
{
SqlCommand com = new SqlCommand(@"Insert into DuplicateCourses
values(" + i + "," + CCID + ")", con);
com.ExecuteNonQuery();
}
catch (Exception)
{
MessageBox.Show("They are exist");
saveDuplicateCourseCompleted=false// Now this is right way
}
}
con.Close();
}