在我的MySQL表中,我让它看起来像这样。
现在我在C#中创建了一个用户控件,其中用户被允许更新除主键“ControlNum”之外的所有列。假设每个列都有自己的文本框,在该用户控件中为了避免标题列中的重复,例如如果用户编辑第二行标题并将其命名为“Naruto”,那么它也将被复制。因此,我创建了一个名为checkData()的方法。
ControlNum|Title |NumOfEpis|Description|
001 |naruto |500 |some text |
002 |conan |700 |some text |
现在我在C#中创建了一个用户控件,其中用户被允许更新除主键“ControlNum”之外的所有列。假设每个列都有自己的文本框,在该用户控件中为了避免标题列中的重复,例如如果用户编辑第二行标题并将其命名为“Naruto”,那么它也将被复制。因此,我创建了一个名为checkData()的方法。
void checkData()
{
SuspendLayout();
try
{
MySqlConnection conn = new MySqlConnection(myConnection);
conn.Open();
MySqlCommand command = new MySqlCommand("SELECT * FROM maindatabase.animelist where TitleAnime=?Title;", conn);
//command.Parameters.AddWithValue("?CN", int.Parse(a.ToString()));
command.Parameters.AddWithValue("?Title", textBox3.Text);
MySqlDataReader reader = command.ExecuteReader();
int ctr = 0;
while (reader.Read())
{
ctr++;
}
if (ctr == 1)
{
my = Form.ActiveForm as MyList;
my.msg = new Message_Box();
my.msg.Descrip.Text = "Record is already in the Database";
my.msg.Title.Text = "Duplicate Record";
my.msg.ShowDialog();
}
else
{
updateData();
}
conn.Close();
ResumeLayout();
}
catch (Exception ex)
{
MessageBox.Show("" + ex);
}
}
它原本是工作的,但我的问题是如果用户只更新了epis和descrip的数量,而并没有真正想要更新标题,我的方法仍然会检测到重复,因为我的逻辑是“if(ctr == 1)”..我认为我错过了一些方法或者我在错误的方法上..所以我希望有人能给我指点迷津..对于我这个新手感到抱歉Y.Y