c#将数字加到数字而不加总和 [英] c# add number to number without sum

查看:98
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆