我已经阅读了关于此的其他问题,但这对大部分内容没有帮助。 在创建另一条记录并允许它们再次上传同一文件之前,试着检查文件是否已经上传(文件名发送到此表)。正确地检查数据库中是否已经存在记录
我正在使用此代码,它会一直告诉我每个文件都是新文件,即使我使用相同的文件进行测试。显然它应该导致“存在”。连接已经建立使用“this.Master.Conn”,所以请不要SQLCommand的东西。
我甚至试图在查询中使用通配符。
private string SQLCheck(string FileName)
{
string Check = "Select VideoURL from TrainingVideo2 where VideoURL Like '" + FileName +"' and Status=1;";
Object ob = this.Master.Conn.ExecuteSqlScalarCommand(Check);
string Result;
if (DBNull.Value.Equals(ob))
{
Result = "Exists";
}
else
{
Result = "NewFile";
}
return Result;
}
此外,有没有人有这样做的更好(更有效率)的方式?
试图基本上在c#中重写。
Private Function CheckName(name As String) As Int32
Dim sql As String = "SELECT ID FROM Company Where Name Like '" & name & "' "
Dim ob As Object = Conn.ExecuteSqlScalarCommand(sql)
If IsDBNull(ob) Then
Return 0
Else
Return CInt(ob)
End If
End Function
我认为,你应该改变条件,当文件不存在时,它会导致'null',与'dbnull'比较,所以即使文件不存在,它也会说'存在',就像你一样检查'DBNull.Value.Equ..' – 2014-11-02 17:31:08
永远不要返回一个字符串来代替真/假值。你的方法应该返回一个布尔值。 – 2014-11-02 17:32:56
同样使用参数化查询而不是连接字符串,这对于sql注入来说是一个很大的安全漏洞 – Nripendra 2014-11-02 17:38:01