You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB中System.Data.DataRow.Item的C#等价写法是什么?

VB中DataRow.Item的C#等价写法解决办法

你遇到的CS1061错误本质是C#的DataRow没有Item这个属性——VB里的row.Item["列名"]是默认属性的写法,在C#里直接用索引器语法就能替代,也就是row["列名"]。

另外还要注意VB里的CStr类型转换,在C#里可以根据场景选择合适的转换方式:

  • 确定列值不为DBNull且是字符串类型:直接用(string)row["列名"]
  • 要兼容空值场景:用Convert.ToString(row["列名"]),自动处理DBNull返回空字符串

修改后的C#代码片段如下:

...
// 修正后的C#代码                          
if (Reader.HasRows) // 检查是否存在数据
{
    var winshare = new DataTable();
    winshare.Load(Reader);
    foreach (DataRow row in winshare.Rows)
    {                                
        string path = Convert.ToString(row["List_Item"]); 
        path = path + @"\Out";
        GlobalVariables.pwc = Convert.ToString(row["Sublist_Id"]);
...

如果你的列值肯定不会是DBNull,也可以用显式强制转换:

string path = (string)row["List_Item"];
GlobalVariables.pwc = (string)row["Sublist_Id"];

总结核心差异:

  • VB默认属性Item在C#中无需写属性名,直接通过索引器访问
  • 类型转换要适配C#语法,优先考虑安全的转换方式避免空引用异常

内容的提问来源于stack exchange,提问作者austin-smith-999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 23:30:47