请问C#问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 22:29:36
请问 string sql = string.format("");
请问要怎么写以及数据库怎么设置,才能如果有该名称了的话,只增加数量,如果没该名称,就插入新的记录,比如:
id列 name列 num列(int型)
1 java 100

要怎么样才能我输入名称是java,数量为1000的时候, num列变成1100
而我输入名称是html,数量为100时候,由于数据库没html,所以把html,100
插入表!
谢谢
能不能给出详细代码

首先要在数据库里查询html的合计是否>0,如果是就更新,如果不是就新插入。
这个简单。

提供一个思路给你吧.

做更新操作之前,首先以名称为目标进行一次查询.如果有结果的话,证明数据库中已经存在这个条目,那么就update;如果没有结果,证明数据库中没有这个条目,那么就insert.

比如你可以这么写:

sqlCmd是SqlCommand类的对象,sqlConn是SqlConnection类的对象,sqlReader是SqlDataReader类的对象.

sqlCmd = new SqlCommand("select * from 表名 where name = '" + 输入的名称 + "'",sqlConn");
sqlReader = sqlCmd.ExecuteReader();
if(sqlReader.Read())
{
sqlCmd = new SqlCommand("update 表名 set num = num + 增加量 where name = '" + 输入的名称 + "'",sqlConn");
}
else
{
sqlCmd = new SqlCommand("insert into 表名 values('" + 输入的名称 + "'," + 输入的数量.ToString(),sqlConn");
}
sqlCmd.ExecuteNonQuery();

大概就是这样了.

两种方法
1是在程序中写,先查询,在判断更新或插入
2是在数据库端写存储过程,在其中判断
第二种方法效率高点
不过如果你的数据量不大的话,怎么做都可以的

string sql = string.format("if exists (select * from 表 w