c#将数字加到数字而不加总和 [英] c# add number to number without sum
本文介绍了c#将数字加到数字而不加总和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有table1包含2列:itmname - itmcode
所有itmname值显示在listview1 column0
和textbox1,其中用户输入他想要的数字
我希望用户在textbox1中输入一个数字,并且数据不会加到已经存在的值中table1上的itmcode,其中itmname = listview1 column0
如果itmcode中没有数据只是插入它
列表视图中的所有项目
我试过这种方法但没有用:
i have table1 contains 2 columns : itmname - itmcode
all itmname values are shown in listview1 column0
and textbox1 where user input the number he want
I want what user to input a number in textbox1 and data be added not sum to the value that's already in itmcode on table1 where itmname = listview1 column0
and if no data in itmcode just insert it
for all items in listview1
I tried this approach but didn't work :
if (cn.State == ConnectionState.Closed) cn.Open();
cm.Connection = cn;
string sql = "UPDATE table1 SET [itmcode] = [itmcode] + @itmcode WHERE [itmname] = @itmname AND [itmname] IS NOT NULL";
cm.CommandText = sql;
foreach (ListViewItem item in listView1.Items)
{
cm.Parameters.Clear();
SqlParameter par_itmcode = new SqlParameter("@itmcode", SqlDbType.Int);
par_itmcode.Value = textBox1.Text;
cm.Parameters.Add(par_itmcode);
SqlParameter par_itmname = new SqlParameter("@itmname", SqlDbType.VarChar);
par_itmname.Value = item.Text;
cm.Parameters.Add(par_itmname);
{
cm.ExecuteNonQuery();
}
}
cn.Close();
MessageBox.Show("done");
so it would look like this
itmname itmcode
name1 3
if user enter 4 in textbox1 then it give me this result :
itmname itmcode
name1 34
推荐答案
我会为此编写一个存储过程:检查行是否存在,如果是,则更新它。如果没有,请执行INSERT:
I would write a stored procedure for this: check if the row exists, and if so UPDATE it. If it doesn't, do an INSERT instead:
CREATE PROCEDURE spInsertOrUpdate
@ItemCode INT,
@ItemName NVARCHAR
AS
BEGIN
UPDATE MyTable SET ItemCode = ItemCode + @ItemCode WHERE ItemName = @ItemName
IF @@ROWCOUNT=0
INSERT INTO MyTable (ItemCode, ItemName) VALUES (@ItemCode, @ItemName)
END
--Here I am assuming the ItemName column is varchar in your table
Create procedure spInsertName
(
@ItemCode int,
@ItemName varchar (100)
)
If Exists(Select ItemCode from MyTable where ItemCode == @ItemCode)
BEGIN
Update MyTable set ItemName = ItemName + @ItemName
Where ItemCode == @ItemCode
END
Else
BEGIN
Insert into MyTable(ItemName, ItemCode) values(@ItemName, @ItemCode)
END
这篇关于c#将数字加到数字而不加总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文