C# 从数据集获取字符串异常

C# Get String From Data set Exception

我已经搜索过了,这不是读取数据集的问题,问题是我做了同样的事情,但它不起作用

我正在尝试从数据集中获取完整名称,当我尝试关注时

String Receiver_name = rec_Ds.Tables[0].Rows[0][First_Name].ToString() + " " + rec_Ds.Tables[0].Rows[0][Last_Name].ToString();

它给出 ArgumentNullException was unHandeled With sub Message of 'name' argument cannot be null.

所以我通过互联网搜索并将代码更改为

String Receiver_name = rec_Ds.Tables[0].Rows[0][“First_Nameˮ].ToString() + “ ˮ + rec_Ds.Tables[0].Rows[0][“Last_Nameˮ].ToString();

现在它给出 “First_Nameˮ Doesn't exist in content

我尝试通过以下方式让它工作,这对我来说似乎没有任何区别(在上面和下面的代码中)但它完美地工作

我的问题是为什么上面的代码不起作用,为什么上面的代码不起作用

String Receiver_name = rec_Ds.Tables[0].Rows[0]["First_Name"].ToString();
Receiver_Name+= " " + rec_Ds.Tables[0].Rows[0]["Last_Name"].ToString();

嗯,“First_Nameˮ 被视为变量名而不是带引号的字符串,因为引号不是 "normal" 双引号,而是印刷的 left/right 引号,所以它们是威胁为 unicode 标志。

将它们更改为普通双引号。

String Receiver_name = rec_Ds.Tables[0].Rows[0]["First_Name"].ToString() + " " + rec_Ds.Tables[0].Rows[0]["Last_Name"].ToString();

因此:从 Internet 复制和粘贴时要小心 - 确保引号实际上被识别为引号并检查语法突出显示。

你的代码是 100% 正确的,除了你 doesn't use Double Quotes 可能是因为你是从网上复制的

实际上你正在使用 Left Double quotes & Right Double quotes ,它们的十六进制值与单引号不匹配

Character name             Symbol  Decimal-Val   Hax-Val

left double quotation mark   “      8220         201C
right double quotation mark  ”      8221         201D
double quotes                "      34           22

在编译器中 左双引号 & 右双引号被认为是名字的一部分 , 不被认为是引号, 这就是你报错的原因

以下内容适合您

 Receiver_name = rec_Ds.Tables[0].Rows[0]["First_Name"].ToString() + " " + rec_Ds.Tables[0].Rows[0]["Last_Name"].ToString();