向数据库插入一条编号为001的数据,如果该数据已存在,提示我编号不能重复
解决方案 »
- 请问 界面复杂如何布GRID让控件自适应
- 字符串匹配问题,求救??
- ListBox有个属性MultiColumn可以显示多列,但怎样指定显示列的数量,比如显示为两列或三列
- 各位大侠请帮我修改一个SQL
- 怎么分析系统结构以及数据库,我的开发环境是c#,数据库是sql2005
- smtp
- 如何修改VS2008下所拉出的控件的字体默认字体类型及字体大小
- 一个概念性的问题:基于对象 vs 面向对象
- 很简单的一个问题:如何关闭web页面本身(C#)?
- 哪位有DataGrid的详细用法说明,最好有示例,多谢!
- 如何实现 取消Combox dropdown 后的自动匹配问题?
- button按钮事件,点多次按钮才能激活事件
if @@rowcount==0 then
insert into table values(001)
else
print '001 is exists.'
end if存储过程也可以你也在程序里面先查询
如果存在就提示
不存在就插入string sql="select * from table where id=001";SqlConnection conn=new SqlConnection("....");SqlCommand cmd=new SqlCommand(conn,sql);
conn.Open();SqlDataReader reader=cmd.ExecuteReader();if(reader.Read()
{
MessageBox.Show("exists");
}
else
{
cmd.CommandText="insert into table values(001)";
...
...
}
可我用下面的代码为什么就不行呢?我感觉思路可行啊
string sql="select * from table where id=001"; SqlConnection conn=new SqlConnection("...."); SqlCommand cmd=new SqlCommand(conn,sql);
conn.Open(); int i=cmd.ExecuteNonQuery();if(i>0)
{
MessageBox.Show("exists");
}
else
{
cmd.CommandText="insert into table values(001)";
...
...
}
public int ExecuteNonQuery();返回值
受影响的行数。实现
IDbCommand.ExecuteNonQuery备注
您可以使用 ExecuteNonQuery 来执行目录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句,在不使用 DataSet 的情况下更改数据库中的数据。可以使用ExecuteScalar()方法:
string sql="select count(*) from table where id=001"; SqlConnection conn=new SqlConnection("...."); SqlCommand cmd=new SqlCommand(conn,sql);
conn.Open(); int i=cmd.ExecuteScalar();if(i>0)
{
MessageBox.Show("exists");
}
else
{
cmd.CommandText="insert into table values(001)";
...
...
}