【发布时间】:2014-09-30 17:32:18
【问题描述】:
我需要在 C# 中的 SQL 表中搜索值(文件名)。如果存在则返回 TRUE,如果不存在则返回 FALSE 并以此为基础继续我的代码。
这是我拥有的,但它不起作用:
SqlCommand cmdName = new SqlCommand("SELECT CASE WHEN EXISTS (SELECT * FROM [dbo].[Document] WHERE FileName = @NewFileName) THEN CAST (1 AS BIT) ELSE CAST (0 AS BIT) )", con);
{
cmdName.Parameters.AddWithValue("@NewFileName", NewFileName);
cmdName.ExecuteNonQuery();
}
有什么建议吗?
整个代码是为了防止用户将文件重命名为表中已经存在的文件。因此,如果有更好的方法可以做到这一点,我将不胜感激。
【问题讨论】:
-
如果您需要适当的帮助,您应该定义“不工作”。没有结果?查询抛出异常? ...
-
请指定这是用于 Sql Server 还是 MySql
-
原始查询:SELECT CASE WHEN EXISTS (SELECT * FROM [dbo].[Document] WHERE FileName = 'SomeFileName') THEN CAST (1 AS BIT) ELSE CAST (0 AS BIT) 有效。但是当我尝试从 C# 执行它时,我无法让它工作。
-
解决了。我用了你的第二种方法。感谢您的帮助。
标签: c# mysql sql sql-server tsql