C# 我得到“Id”运算符后缺少操作数”错误,代码中发生了什么?
我尝试了很多,但我不能,朋友们帮我删除这个代码,如何删除列?这行是错误的C# 我得到“Id”运算符后缺少操作数”错误,代码中发生了什么?,c#,C#,我尝试了很多,但我不能,朋友们帮我删除这个代码,如何删除列?这行是错误的 case 2: int intRemoveOption; Console.WriteLine("Select You Want to Delete Entire Column or Seperate:\n"); Console.WriteLine("Select 11. for Remove Entire Column"); Console.WriteLine("Select 12. For
case 2:
int intRemoveOption;
Console.WriteLine("Select You Want to Delete Entire Column or Seperate:\n");
Console.WriteLine("Select 11. for Remove Entire Column");
Console.WriteLine("Select 12. For Remove Single Column\n");
intRemoveOption = Convert.ToInt32(Console.ReadLine());
if (intRemoveOption ==11)
{
Console.WriteLine("Enter Id");
objdatarowcollection = objDataTable.Select("student Id =");
if (objdatarowcollection != null && objdatarowcollection.Length > 0)
objdatarowcollection[0].Delete();
Console.WriteLine("number of rows \n{0}", objDataTable.Rows.Count.ToString());
Console.WriteLine("The Record is Deleted Now");
datarow = objDataTable.Select();
foreach (DataRow datarw in datarow)
foreach (DataColumn datacl in datarw.Table.Columns)
Console.WriteLine(" {0}", datarw[datacl]);
首先,带空格的字段名需要用方括号括起来。
其次,Select方法需要类似于SQLWHERE语句中使用的语法。因此,在等于之后,需要一个值来过滤行集合
objdatarowcollection = objDataTable.Select("student Id =");
尽管如此,你的问题仍然不清楚。“删除列”是什么意思?您将删除一列,并将其从其所在的数据表中删除
例如:
objdatarowcollection = objDataTable.Select("[student Id] =" + someValueToSearchFor);
相反,您的代码尝试从Select方法中删除返回的行集合的索引0处的行,因此如果要删除列:
objDataTable.Columns.Remove("ColumnName");
如果要删除返回集合的索引0处的行
请注意,如果要搜索的值是字符串,则需要在该值周围加引号
objDataTable.Columns.Remove("C2");
+------+-----+------+ +------+------+
| c1 | c2 | c3 | | c1 | c3 |
+------+-----+------+ +------+------+
| A | D | G | Remove a column named c2 | A | G |
+------+-----+------+ result is +------+------+
| B | E | H | | B | H |
+------+-----+------+ +------+------+
| C | F | I | | C | I |
+------+-----+------+ +------+------+
请记住,这里的单词remove/delete是虚拟的。
DataTable是内存中的对象。从内存行集合中删除元素或从列集合中删除元素不会删除/删除数据库物理结构中的任何内容。为此,您需要真正的sql查询和数据库引擎ADO.NET提供程序的支持。然后您需要知道此id并将其添加到SELECT表达式的末尾。没有它,就不可能移除任何东西。顺便说一句,记住这里的单词remove是虚拟的。DataTable是内存中的对象。从内存行集合中删除元素不会删除数据库物理结构中的任何内容。
objdatarowcollection = objDataTable.Select("C3 ='H'");
objdatarowcollection[0].Delete();
+------+-----+------+ +------+-----+------+
| c1 | c2 | c3 | | c1 | c2 | c3 |
+------+-----+------+ +------+-----+------+
| A | D | G | Delete a ROW with value | A | D | G |
+------+-----+------+ 'H' in column c3 results in +------+-----+------+
| B | E | H | | C | F | I |
+------+-----+------+ +------+-----+------+
| C | F | I |
+------+-----+------+