用C#将数据插入数据库,判断是否重复
我要将一字符串插入到数据库,但之前要进行判断是否和数据库中的数据重复,以下是我的代码:protected void submit_Click(object sender, EventArgs e)
{
string code;
code = Convert.ToString(this.TextBox1.Text);
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"'", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
code = regex.Replace(code, " ");
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=CodeRead;uid=sa;pwd= ");
conn.Open();
string sql = "select Count(1) from code where numble=('" + code + "')";
SqlCommand cmd1 = new SqlCommand(sql, conn);
int count = (int)cmd1.ExecuteScalar();
if (count > 1)
Response.Write("数据重复!");
else
{
SqlCommand cmd = new SqlCommand("insert into code(numble) values('" + code + "')", conn);
cmd.ExecuteNonQuery();
if (cmd.ExecuteNonQuery() > 0)
Response.Write(code + "数据导入成功!");
else
Response.Write("数据导入错误!");
conn.Close();
}
当插入“22”
小女接触不久,求高手帮忙!!深表感激!! --------------------编程问答--------------------
--------------------编程问答-------------------- string sql = "select Count(1) from code where numble=('" + code + "')";
if (count > 1)//大于1,也就是2个时候,才会数据重复
Response.Write("数据重复!");
和
if (count > 1)
有问题 --------------------编程问答-------------------- string code= Convert.ToString(this.TextBox1.Text);
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=CodeRead;uid=sa;pwd= ");
conn.Open();
string sql = "select * from code where numble='" + code.Trim() + "'";
SqlCommand cmd1 = new SqlCommand(sql, conn);
int count = (int)cmd1.ExecuteScalar();
if (count > 1)
Response.Write("数据重复!");
break;
else
{
SqlCommand cmd = new SqlCommand("insert into code(numble) values('" + code + "')", conn);
cmd.ExecuteNonQuery();
if (cmd.ExecuteNonQuery() > 0)
Response.Write(code + "数据导入成功!");
else
Response.Write("数据导入错误!");
conn.Close();
}
--------------------编程问答-------------------- count >=1
而且要注意下连接的关闭 --------------------编程问答-------------------- if (count > 0)
Response.Write("数据重复!");
--------------------编程问答-------------------- 1.给 这个 字段加唯一 约束 就不用 判断那么 麻烦了。
2.直接抛出异常,处理下弹出提示. --------------------编程问答--------------------
+1 --------------------编程问答--------------------
同解~~~ --------------------编程问答-------------------- IF((select Count(1) from code where numble=@numble )<1)
BEGIN
insert into code(numble) values(@numble)
END
--------------------编程问答--------------------
抛出异常影响性能难道不知道么?晕死。。
string sql = "select Count(*) from code where numble=('" + code + "')";
我想这样进行查询的时候应该可以查询出来是否有值。 --------------------编程问答-------------------- 如果导入excel还是用事务把。
--------------------编程问答-------------------- 建议在数据库加一个不重复的约束 --------------------编程问答--------------------
最好的方法 --------------------编程问答-------------------- 判断条件写错了,if条件应该是(count > 0) --------------------编程问答-------------------- --------------------编程问答--------------------
还真有人敢推荐这种方法啊
--------------------编程问答-------------------- 不用判断有没有重复的 直接就删除了之前的 然后放最新的····· --------------------编程问答--------------------
发现把判断重复语句删掉,插入一组字符串还是会添加两个到数据库,好像是提交时触发了两次submit_Click事件,求帮助怎么解决? --------------------编程问答-------------------- 发现把判断重复语句删掉,插入一组字符串还是会添加两个到数据库,好像是提交时触发了两次submit_Click事件,求帮助怎么解决? --------------------编程问答-------------------- 结贴吧 --------------------编程问答-------------------- 这个你可以用存储过程来帮你做啊,给你个返回值告诉你记录重复就好了,以后修改的话直接改存储过程就可以了,不用改代码了 --------------------编程问答--------------------
有道理。。 --------------------编程问答-------------------- 把这一列的数据都捞出来,包含在里面的就不要在插入了 --------------------编程问答--------------------
这个正解
--------------------编程问答-------------------- 应该 if (count == 1) 或者if (count > 0)
--------------------编程问答-------------------- 像这种操作数据库的,最好封装成一个类。 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- if(count>0) --------------------编程问答-------------------- +1 --------------------编程问答-------------------- 楼上再+1。。 --------------------编程问答-------------------- --------------------编程问答-------------------- 這是我的代易做图,你參考下
DECLARE--------------------编程问答--------------------
num NUMBER;
BEGIN
SELECT COUNT (*)
INTO num
FROM glb_rpt_uph
WHERE start_time = TO_DATE ('2013-6-13 15:30:00', 'yyyy-MM-dd hh24:mi:ss');
/*在表glb_rpt_uph中查詢條件滿足
start_time = TO_DATE ('2013-6-13 15:30:00', 'yyyy-MM-dd hh24:mi:ss')
的數據數量,存入num中*/
IF num <> 0
/*判斷num若是數量不為0,則說明存在,只更新數據,不插入*/
THEN
UPDATE glb_rpt_uph
SET model = 'AK73-BTE-EA1',
shift = 'd',
end_time =
TO_DATE ('2013-6-13 16:30:00', 'yyyy-MM-dd hh24:mi:ss'),
input = 0,
output = 0,
fpy = 1,
uph = 107,
upph = 4
WHERE start_time =
TO_DATE ('2013-6-13 15:30:00', 'yyyy-MM-dd hh24:mi:ss');
ELSE
/*不存在,則插入*/
INSERT INTO glb_rpt_uph
VALUES ('AK73-BTE-EA1', 'd',
TO_DATE ('2013-6-13 15:30:00', 'yyyy-MM-dd hh24:mi:ss'),
TO_DATE ('2013-6-13 16:30:00', 'yyyy-MM-dd hh24:mi:ss'),
0, 0, 1, 107, 4);
END IF;
END;
太逗了... 这简单的功能都没实现 你竟然跟我谈性能 --------------------编程问答--------------------
--------------------编程问答-------------------- 最简单的办法就是 建个唯一约束。
cw(count==0?"不存在,可以insert":"有了");
如果嫌异常麻烦,那就做个存储过程,先查存不存在,如果存在就不插新数据;
或者有代码来做,先查在插入。
补充:.NET技术 , C#