【发布时间】:2013-03-27 14:48:56
【问题描述】:
访问 2003 VS 2010 C#
请有人帮我做一个 else 语句。我已经使用 if 语句来检查是否存在重复记录,并且我在使用插入命令参数时如何使用 else 语句而苦苦挣扎。提前致谢
这里是方法
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
using (var command = myCon.CreateCommand())
{
command.CommandText = "select * from SomeTable where ID = @ID";
command.Parameters.AddWithValue("ID", int.Parse(txtID.Text));
myCon.Open();
var reader = command.ExecuteReader();
{
if (reader.HasRows)
{
while (reader.Read())
{
txtID.Text = reader["ID"].ToString();
}
} MessageBox.Show("ID Already exist");
else (reader.HasRows !=null // need here pls.
{
cmd.CommandText = "INSERT INTO SomeTable (ID, AgeGroup, Gender) VALUES (@ID, @AgeGroup, @Gender)";
cmd.Parameters.AddWithValue("@ID", txtID.Text);
cmd.Parameters.AddWithValue("@AgeGroup", cBAgeGroup.Text);
cmd.Parameters.AddWithValue("@Gender", cBGender.Text);
cmd.Connection = myCon;
cmd.ExecuteNonQuery();
}
}
}
// cmd.Connection = myCon;
// cmd.ExecuteNonQuery();
myCon.Close();
更新 2 我在 else 语句中移动了 cmd 连接和 cmd.ExecuteNonQuery。我能够检查 id 是否已经存在并能够插入新记录。所以代码正在按原样执行。
感谢大家的建议。
【问题讨论】:
-
请更新您的标题.. meta.stackexchange.com/questions/10647/…
-
@SonerGönül - 更好?
-
既然用c#打了标签,也就不用写了..
-
我不完全确定发生了什么,但您似乎嵌套了两个命令。如果是我,我会将 INSERT INTO 的代码移到它自己的 using 语句中。我会单独调试它以确保它正常工作。您可以使用布尔值,以便如果您的阅读器有行,则将布尔值设置为 true。执行另一个 if 语句来检查布尔值并插入。
-
感谢Soner提醒