Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在MS Access中插入数据而不删除现有记录?_C#_Ms Access - Fatal编程技术网

C# 如何在MS Access中插入数据而不删除现有记录?

C# 如何在MS Access中插入数据而不删除现有记录?,c#,ms-access,C#,Ms Access,我想在access中添加一条记录。列名为“名称”: 现在我想将数据添加到现有数据中,而不删除或添加现有记录 假设: id name original name 1 blue shoes 2 black shoes 3 green shoes 现在我想这样假设记录已经存在,当用户添加下两个条目时,应该是这样的 此外:如果用户向列_name发送一个新值,那么该值必须添加到name列中,而不忽略其他值。如果它像蓝色,并且您将name value=

我想在access中添加一条记录。列名为“名称”: 现在我想将数据添加到现有数据中,而不删除或添加现有记录

假设:

id name     original name
1  blue       shoes   
2  black      shoes 
3  green      shoes
现在我想这样假设记录已经存在,当用户添加下两个条目时,应该是这样的

此外:如果用户向列_name发送一个新值,那么该值必须添加到name列中,而不忽略其他值。如果它像蓝色,并且您将name value=black作为新值发送,那么它应该看起来像蓝黑色

id name    original name
1  shoes   blue black 

那么,如何使用SQL语句来实现这一点呢?类似这样的语句应该可以做到这一点

UPDATE tbl SET tbl.[original name] = tbl.[original name] + ' ' + @newName WHERE tbl.[name] = 'shoes'
然而,您正在失去数据库中所有的关系优势。因此,您可能想在这里仔细研究一下您的设计,看看它是否可以改进(几乎可以肯定)


当然,用实际id替换id,用用户输入替换“shoes”。

要么我遗漏了什么,要么这真的不清楚。您想使用
INSERT
语句转置两个字段,将其中一个字段的值连接成一个值,在连接后删除额外记录,并保留被修改字段的原始ID吗?什么?我不明白你想做什么,你能再详细说明一下吗?你的问题对我来说毫无意义,但听起来你好像想了解
更新
如果
原始名称
列应该是某种审计跟踪,你可以将其移动到自己的表中。审核表中的每条记录将只记录一次更改,并包括时间戳,可能还有用户ID等。这样审核数据将非常有用。@safi:有没有令人信服的理由这样存储历史信息?一个单独的审核表将使其更具关系性,这就是关系数据库的作用。您不能将命名参数与Jet/ACE和OleDB一起使用,必须使用问号并按参数出现的顺序添加参数。@James Gaunt:因此此查询不会替换记录的值,但会将数据添加到现有记录中,比如它是否包含蓝色,我会发送一个黑色值,这样它就会像蓝黑一样?根据@Remou在OleDB中使用参数的观点,它会。我只使用MSSQL,因此无法帮助您准确地从外部将参数传递到查询中。您需要在其中设置<代码>更新tbl设置tbl。[原始名称]=@Remou's:我正在使用参数并将jet/acc与oledb一起使用,它工作正常:sqlcmdCommand.Parameters.AddWithValue(“,”);这很容易做到,但我想做的是向现有的name列添加数据。不丢失任何数据
update names set original_name = name where id = 1;

update names set name = "shoes" where id = 1;