C# 更新第一个实例为null的位置
我正在用多个列创建一个c应用程序,但我只能在ComboBox上留下事件并向数据库插入一个值的新行时填充一列。所以有很多空值。我提出了一个命令,但它将列中的所有空值设置为接收的值。 UPDATE+databaseName+SET+wheretofind+=@dummy+WHERE SELECT+wheretofind+FROM+databaseName+WHERE+wheretofind+为null为null;有人能做这件事只是第一次吗?我试过top 1,LIMITT 1;-不起作用 谢谢C# 更新第一个实例为null的位置,c#,sql,C#,Sql,我正在用多个列创建一个c应用程序,但我只能在ComboBox上留下事件并向数据库插入一个值的新行时填充一列。所以有很多空值。我提出了一个命令,但它将列中的所有空值设置为接收的值。 UPDATE+databaseName+SET+wheretofind+=@dummy+WHERE SELECT+wheretofind+FROM+databaseName+WHERE+wheretofind+为null为null;有人能做这件事只是第一次吗?我试过top 1,LIMITT 1;-不起作用 谢谢 编辑-
编辑-我正在使用MSSQL我可能没有正确理解您,但据我所知,说明中的SQL命令会更新wheretofind列“所有记录”,而您只想更新一条记录 如果是这样,您需要有一种可靠的方法来确定要更新的记录。如果WHERE子句导致标识多行,那么应该如何确定要更新的记录
DECLARE @data TABLE (
col_1 VARCHAR(10),
col_2 INT
);
INSERT INTO @data (
col_1,
col_2
)
VALUES
('Value 1', 1),
(NULL, 2),
(NULL, 3),
(NULL, 4),
(NULL, 5);
/* Create a CTE which selects only the record you want to update */
WITH to_update AS (
SELECT TOP 1 *
FROM @data
WHERE col_1 IS NULL /* Your where clause to find qualifying data */
ORDER BY col_2 /* Your order clause, to identify the correct "top 1" record */
)
/* Update the data in the CTE, which will actually update the original data */
UPDATE to_update SET col_1 = 'New value'
SELECT * FROM @data
您的C SQL查询可能如下所示:
"WITH to_update AS (" +
"SELECT TOP 1 * FROM " + databaseName +
"WHERE " + wheretofind + " is null ORDER BY " + some_order_criteria + ")" +
"UPDATE to_update SET " + wheretofind + " = @dummy";
什么是不工作?此外,请显示您的代码。Limit显示错误,top1更改列中的所有空值。使用主键如何?您的意思是什么?对不起,我是编程新手,我需要在列中找到第一个空值,并更新新文本。但这个答案与我在程序中实际需要做的非常接近。这个答案应该是这样的,我更新了它以更好地反映您的情况,即构造一个C字符串用作查询。但是,当您谈论获取第一个空列时,您确实需要引入一些排序,因此我在示例中包含了一些顺序标准。谢谢!这有帮助。下次我会尽量提供更多的信息。