相关疑难解决方法(0)

SQL数据读取器 - 如何优雅地处理空列值

我正在使用SQLDataReader从数据库中检索可能为null的值.我已经解决了如何处理Null字符串值,但无法使用相同的技巧来处理整数或布尔值:

Using cmd As DbCommand = store.GetStoredProcCommand("RetrievePOCO")
    store.AddInParameter(cmd, "ID", DbType.Int32, ID)
    Using reader As IDataReader = store.ExecuteReader(cmd)
        If reader.Read() = True Then
            Dim newPOCO As New POCO()
            With newPOCO
                'If the source column is null TryCast will return nothing without throwing an error
                .StatusXML = TryCast(reader.GetString(reader.GetOrdinal("StatusXML")), String)
                'How can a null integer or boolean be set elegantly?
                .AppType = TryCast(reader.GetInt32(reader.GetOrdinal("AppType")), System.Nullable(Of Integer))
                .Archived = TryCast(reader.GetBoolean(reader.GetOrdinal("Archived")), Boolean)
Run Code Online (Sandbox Code Playgroud)

那么如何优雅地设置null整数或布尔值呢?我已经在C#中看到了建议,但它们没有正确转换为VB,给出'TryCast操作数必须是引用类型,但是整数?是值类型'编译器错误.

vb.net sqldatareader

3
推荐指数
1
解决办法
6558
查看次数

什么是C#的VB.NET等价物?运营商?

什么是运营商的VB.NET等价物C# ?

例如,如何编写以下代码VB.NET

hp.pt = iniFile.GetValue("System", "PT").ToUpper().Equals("H") ? PT.PA : PT.SP
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net iif

2
推荐指数
1
解决办法
3927
查看次数

VB.NET没什么日期时间?DataReader的

一个简单的问题,if inline:dim mydate as datetime?


'版本1(工作!)

If dtReader.IsDBNull(dtReader.GetOrdinal("mydate")) Then
    mydate = Nothing
Else
    mydate = dtReader.GetDateTime(dtReader.GetOrdinal("mydate"))
End If
Run Code Online (Sandbox Code Playgroud)

价值=没有


'版本2(DOENSN'T WORK!)

mydate = If(dtReader.IsDBNull(dtReader.GetOrdinal("mydate")), Nothing, dtReader.GetDateTime(dtReader.GetOrdinal("mydate")))
Run Code Online (Sandbox Code Playgroud)

价值=#12:00:00#


有人可以解释为什么版本2获得此值吗?

vb.net datetime nullable datareader getvalue

2
推荐指数
1
解决办法
428
查看次数

带有OR子句的VBA赋值语句

我遇到过一些看起来像这样的代码

If (condition) Then
    array(index) = array(index) Or variable
End If
Run Code Online (Sandbox Code Playgroud)

由于不熟悉VB,它在我看来就像是在赋值语句和条件子句之间的某种可爱的结果.

在功能上,我认为它看起来像某种?:三元操作.我现在假设它,虽然肯定不是我习惯的形式.

我知道第一个分支会为自己分配数组(索引),这实际上就是我正在处理的代码是如何工作的.我不认为它与这个问题有关,但它有点让我感到奇怪,并且通常比我用VB意识到的要多得多.

不是重复的是VB.NET中有条件三元运算符吗?因为那个问题是询问是否有一个,而不是"这是什么意思"

vba

2
推荐指数
1
解决办法
135
查看次数

如何转换标志"?" 在c#到vb.net?

我正在尝试将c#代码转换为vb.net,但我很难转换符号"?" 在c#到vb.net.这里我的代码转换

 public audit_trail Mapper(IDataReader rdr)
 {
      audit_trail audit_trail = new audit_trail();
      audit_trail.Log_id = rdr["Log_id"] is DBNull ? 0 : (int)rdr["Log_id"];            
      audit_trail.Host = rdr["Host"] is DBNull ? string.Empty : (string)rdr["Host"];
      return audit_trail;
 } 
Run Code Online (Sandbox Code Playgroud)

如何转换标志"?" 到vb.net ??

我想转换

  audit_trail.Host = rdr["Host"] is DBNull ? string.Empty : (string)rdr["Host"];
Run Code Online (Sandbox Code Playgroud)

喜欢的东西

if rdr["Host"] is DBNull.Value then
  audit_trail.Host =  string.Empty 
else 
  audit_trail.Host = rdr["Host"]
end if
Run Code Online (Sandbox Code Playgroud)

但代码太长,代码行太多..你们有没有想法转换为短代码?

c# vb.net operators

1
推荐指数
1
解决办法
179
查看次数

我如何缩短这个If ... Else ...语句以检查日期的状态?

我是一名C#程序员,但在VB.Net中涉足,因为我团队中的其他人都使用它.为了专业发展的利益,我想缩小以下的If ... Else ...声明.

If cmd.Parameters("@whenUpdated").Equals(DBNull.Value) Then
    item.WhenUpdated = Nothing
Else
    item.WhenUpdated = cmd.Parameters("@whenUpdated").Value
End If
Run Code Online (Sandbox Code Playgroud)

我很欣赏已经有的例子,但是我不能让它适用于这个具体案例.

干杯,伊恩.

c# vb.net code-conversion

0
推荐指数
1
解决办法
342
查看次数

在vb.net中使用C#条件运算符

可能的重复:
VB.NET中是否有条件三元运算符?

我在c#网站的asp.net中有以下代码,但我必须在vb.net网站中使用此代码,但即使代码转换器也无法转换代码,请帮助我做到这一点。这是我的代码

<asp:CheckBox ID="chkStatus" runat="server" 
                            AutoPostBack="true" OnCheckedChanged="chkStatus_OnCheckedChanged"
                            Checked='<%# Convert.ToBoolean(Eval("Approved")) %>'
                            Text='<%# Eval("Approved").ToString().Equals("True") ? " Approved " : " Not Approved " %>' />
                    </ItemTemplate>                    
                </asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

在这里我想改变这条线 Text='<%# Eval("Approved").ToString().Equals("True") ? " Approved " : " Not Approved " %>'

对于vb.net网站,请帮助我做到这一点。

c# vb.net

0
推荐指数
1
解决办法
213
查看次数