为什么一执行,就增加了两条记录?
代码:
conn.Open();
string sid = System.Guid.NewGuid().ToString();
string sql = "insert into count (atitle,author,unit,sid) values (?,?,?,?)";
cmd.Parameters.Clear();
cmd.CommandText = sql;
cmd.Parameters.Add("atitle", OleDbType.VarChar).Value = TextBox1.Text;
cmd.Parameters.Add("author", OleDbType.VarChar).Value = TextBox2.Text;
cmd.Parameters.Add("unit", OleDbType.VarChar).Value = TextBox3.Text;
cmd.Parameters.Add("sid", OleDbType.VarChar).Value = sid;
cmd.ExecuteNonQuery();
sql = "select id from count where sid='" + sid + "'";
odr = cmd.ExecuteReader();
if (!odr.HasRows)
{
odr.Close();
conn.Close();
Lmsg.Text = "*错误:数据加入错误!!请重新录入!!!";
return;
}
odr.Read();
odr.Close();
conn.Close();
代码:
conn.Open();
string sid = System.Guid.NewGuid().ToString();
string sql = "insert into count (atitle,author,unit,sid) values (?,?,?,?)";
cmd.Parameters.Clear();
cmd.CommandText = sql;
cmd.Parameters.Add("atitle", OleDbType.VarChar).Value = TextBox1.Text;
cmd.Parameters.Add("author", OleDbType.VarChar).Value = TextBox2.Text;
cmd.Parameters.Add("unit", OleDbType.VarChar).Value = TextBox3.Text;
cmd.Parameters.Add("sid", OleDbType.VarChar).Value = sid;
cmd.ExecuteNonQuery();
sql = "select id from count where sid='" + sid + "'";
odr = cmd.ExecuteReader();
if (!odr.HasRows)
{
odr.Close();
conn.Close();
Lmsg.Text = "*错误:数据加入错误!!请重新录入!!!";
return;
}
odr.Read();
odr.Close();
conn.Close();
sql = "select id from count where sid='" + sid + "'";
odr = cmd.ExecuteReader();
是不是因为cmd.ExecuteReader(); 执行了两次啊
string sid = System.Guid.NewGuid().ToString();
string sql = "insert into count (atitle,author,unit,sid) values (?,?,?,?)";
cmd.Parameters.Clear();
cmd.CommandText = sql;
cmd.Parameters.Add("atitle", OleDbType.VarChar).Value = TextBox1.Text;
cmd.Parameters.Add("author", OleDbType.VarChar).Value = TextBox2.Text;
cmd.Parameters.Add("unit", OleDbType.VarChar).Value = TextBox3.Text;
cmd.Parameters.Add("sid", OleDbType.VarChar).Value = sid;
cmd.ExecuteNonQuery();
sql = "select id from count where sid='" + sid + "'";
odr = cmd.ExecuteReader();
if (!odr.HasRows)
{
odr.Close();
conn.Close();
Lmsg.Text = "*错误:数据加入错误!!请重新录入!!!";
return;
}
odr.Read();
odr.Close();
conn.Close();
红色sql并没有重新赋给cmd.
应该在odr = cmd.ExecuteReader();
前面再加一句cmd.CommandText = sql;
试试吧。