5个回答
展开全部
第一种方案:用存储过程来写
以下是存储过程内容:
declare @Num int
select @Num = count(*) from 表名 where...(判断是否同一条数据的条件)
if(@Num = 0)
insert into .....
else
update ....
第二种方案:在程序里分两次操作数据库(这种方式比较浪费资源)
string cmdText="select count(*) from 表名 where...(判断是否同一条数据的条件)";
SqlCommand cmd=new SqlCommand(cmdText,con)
con.Open();
//先得到数据库中是否有这条记录
int num =Convert.ToInt32(cmd.ExecuteScalar());
if(num>0)
{
//如果有,把SQL语句设置为修改数据
cmdText="update..."
}
else
{
//如果没有,就插入一条数据进去
cmdText="insert..."
}
cmd.CommandText=cmdText;
cmd.ExecuteNonQuery();
con.Close();
以下是存储过程内容:
declare @Num int
select @Num = count(*) from 表名 where...(判断是否同一条数据的条件)
if(@Num = 0)
insert into .....
else
update ....
第二种方案:在程序里分两次操作数据库(这种方式比较浪费资源)
string cmdText="select count(*) from 表名 where...(判断是否同一条数据的条件)";
SqlCommand cmd=new SqlCommand(cmdText,con)
con.Open();
//先得到数据库中是否有这条记录
int num =Convert.ToInt32(cmd.ExecuteScalar());
if(num>0)
{
//如果有,把SQL语句设置为修改数据
cmdText="update..."
}
else
{
//如果没有,就插入一条数据进去
cmdText="insert..."
}
cmd.CommandText=cmdText;
cmd.ExecuteNonQuery();
con.Close();
展开全部
代码不写了,告诉你思路:
首先判断是否已存在这样的记录:
select count * from Table where 条件
if(count >0)
{
数据相加;
//数据库语句来实现
}
else
{
修改;
}
首先判断是否已存在这样的记录:
select count * from Table where 条件
if(count >0)
{
数据相加;
//数据库语句来实现
}
else
{
修改;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种需求建议用储存过程,或是触发器做省事,不用不停地访问数据库
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SQL Server
if exists(select * from table where id=2)
update table set wehre id=2;
else
insert into table;
if exists(select * from table where id=2)
update table set wehre id=2;
else
insert into table;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你用读取器看看读不读的到不就是了么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询