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
相关产品推荐
相关产品推荐

