我想允许用户添加“类别”。
但是,在实际添加类别之前,我想确保它不重复。
这是我的代码:
//ADD CATEGORY
private void addcat_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(addcattxt.Text))
{
MessageBox.Show("You must enter a valid category.",
"Invalid Operation: Data Missing",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
foreach (DataRowView dvrow in catcombobox.Items)
{
if (dvrow.ToString() == addcattxt.Text)
{
MessageBox.Show("This category already exists.",
"Invalid Operation: Duplicate Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
}
var query = "INSERT INTO category_table (Category) VALUES(@cat);";
using (var sqlcmd = new SqlCommand(query, sqlconnection))
{
sqlcmd.Parameters.AddWithValue("@cat", this.addcattxt.Text);
sqlcmd.ExecuteNonQuery();
}
this.DialogResult = DialogResult.OK;
this.Close();
}
}
}
此代码不起作用,它会添加用户输入的类别,无论其是否重复。
我还尝试了foreach
循环的以下代码:
foreach (var item in catcombobox.Items)
,但仍无效。
如何让它发挥作用?
SOLUTION:
if (dvrow.Row["Category"].Equals(addcattxt.Text))
{
MessageBox.Show("This category already exists.",
"Invalid Operation: Duplicate Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
}
答案 0 :(得分:3)
我认为您的代码无效,因为DataRowView.ToString()
会返回对象的表示形式。你绑定的行的哪个字段?您的支票可能看起来更像:
if (dvRow.Row["Name"].Equals(addcattxt.Text)) ...
答案 1 :(得分:0)
我认为您的代码会向数据库添加重复项,因为如果您重复使用,则不会跳过该部分以将其添加到数据库中。
如果不清楚,请在您的代码中尝试:
foreach (DataRowView dvrow in catcombobox.Items)
{
if (dvrow.ToString() == addcattxt.Text)
{
MessageBox.Show("This category already exists.",
"Invalid Operation: Duplicate Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
break;//<----- yeah jeff right no break here to
}
else
{
var query = "INSERT INTO category_table (Category) VALUES(@cat);";
using (var sqlcmd = new SqlCommand(query, sqlconnection))
{
sqlcmd.Parameters.AddWithValue("@cat", this.addcattxt.Text);
sqlcmd.ExecuteNonQuery();
}
}
}
我希望能解决你的问题!祝好运! :)
答案 2 :(得分:0)
if (!catcombobox.Items.Contains(addcattxt.Text.ToString()))
{
ms_combobox.Items.Add(addcattxt.Text.ToString());
}
else
{
MessageBox.Show("This category already exists.",
"Invalid Operation: Duplicate Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
此示例示例链接:) http://www.mediafire.com/download/zb9gp1x1096it6s/Adding_to_Combobox_and_Checking_for_Duplicates.rar