我要将一字符串插入到数据库,但之前要进行判断是否和数据库中的数据重复,以下是我的代码:
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”小女接触不久,求高手帮忙!!深表感激!!
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”小女接触不久,求高手帮忙!!深表感激!!
解决方案 »
- VS2010出现异常后自动调用dispose,程序退出,不显示错误的地方,怎么设置?求教
- 基于TCP的P2PSocket通信
- 新手求教MP3播放器问题
- 如何在远程机上创建web项目
- ViewState的问题
- 用C#实现oracle数据导出(高手进)?
- c#用socket在局域网广播的问题
- 怎么实现“关闭程序时需要输入密码”?又怎么实现卸载程序时需要输入密码?
- DateTimerPicker显示问题(着急)
- 急: 怎么在C#中引用ActiveX控件? 在线等待!
- 新手请教:弹出的窗体为何关闭了,还会出现一次?
- VS2008开发的dll程序,调试时启动VS2010调用dll,无法进入调试,提示调试器的协议与调试对象不兼容
if (count > 1)//大于1,也就是2个时候,才会数据重复
Response.Write("数据重复!");
和
if (count > 1)
有问题
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();
}
而且要注意下连接的关闭
Response.Write("数据重复!");
BEGIN
insert into code(numble) values(@numble)
END
string sql = "select Count(*) from code where numble=('" + code + "')";
我想这样进行查询的时候应该可以查询出来是否有值。
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":"有了");