.net - 当我在 Visual Basic 中更新其他字段时,如何保持 SQL tble 字段不更新?
问题描述
我有一个类允许我更新 sql 表字段。我要更新的字段之一是文件名。以下函数根据某些条件返回文件名。我遇到的问题是else
条款。
Public Function checkFileNamesForUpdate(ByVal file As FileUpload, ByVal firstName As String, ByVal lastName As String, ByVal text As String, ByVal hyper As HyperLink) As String
If (file.HasFile) Then
Return firstName.ToLower + "_" + lastName.ToLower + "_" + text
ElseIf (Not file.HasFile AndAlso hyper.NavigateUrl <> "") Then
Return firstName.ToLower + "_" + lastName.ToLower + "_" + text
Else
Return Nothing
End If
End Function
Return Nothing
不会更新FileName
. 我希望它NULL
有价值。所以我用过Return DBNull.Value.ToString()
。但这不会添加 null 而是空白字段。
有什么我缺少的方法吗?
解决方案
您可以在函数的 Else 部分中返回 String.Empty 的 ""。在调用代码中检查 String.IsNullOrEmpty 并设置参数的值,如图所示。
Private Sub OPCode()
Dim fileUp As New FileUpload
Dim h As New Hyperlink
Dim ReturnedString As String = checkFileNamesForUpdate(fileUp, "John", "Smith", "Some text", h)
Using cn As New SqlConnection("Your connection string"),
cmd As New SqlCommand("Update SomeTable Set FileName = @FileName;")
cmd.Parameters.Add("@FileName", SqlDbType.VarChar, 100)
If String.IsNullOrEmpty(ReturnedString) Then
cmd.Parameters("@FileName").Value = DBNull.Value
Else
cmd.Parameters("@FileName").Value = ReturnedString
End If
cn.Open()
cmd.ExecuteNonQuery()
End Using
End Sub
推荐阅读
- python - 使用 Zappa 和 Windows 10 时无法从“flask”导入名称“Flask”
- javascript - 如何一次过滤多个对象属性?
- pandas - 根据列名压缩宽数据
- spring-boot - 为什么 un-jar then jar 会再次破坏我的 Spring Boot Web 应用程序?
- reactjs - 使用 fieldset 响应禁用组件
- python - 如何将 cProfile Stats.print_stats() 输出重定向到日志记录?
- r - 我可以根据列表格式的查找表重命名 DF 吗?
- postgresql - 如何在 Kubernetes pod 中升级 postgresql?
- xamarin - 如何在 Xamarin 的后台执行功能?
- ios - 保持电池 iOS 小部件更新