Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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# 更新第一个实例为null的位置_C#_Sql - Fatal编程技术网

C# 更新第一个实例为null的位置

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;-不起作用 谢谢 编辑-

我正在用多个列创建一个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字符串用作查询。但是,当您谈论获取第一个空列时,您确实需要引入一些排序,因此我在示例中包含了一些顺序标准。谢谢!这有帮助。下次我会尽量提供更多的信息。