【问题标题】:Get a row from a datatable in C# Visualstudio and then store the row in a datarow从 C# Visualstudio 中的数据表中获取一行,然后将该行存储在数据行中
【发布时间】:2021-02-08 21:24:18
【问题描述】:

我在 c# Visual Studio 中有一个数据集。我有其中一行的列值之一。我需要使用该值选择该行并将其存储在数据行中,以便我可以删除它。那么如何从其中一个列值中获取数据表的行。我正在尝试这样的事情:

DataRow rowtobeselected = TableName["SerialNumber = 156"]; 

但你知道这是错误的。我还需要获得另一个列值 从这一行开始。例如,我需要从日期列中获取值。

string Date = rowtobeselected.date;

我想做这样的事情。那么如何正确地做到这一点。谢谢。

【问题讨论】:

    标签: c# datarow


    【解决方案1】:

    DataTables 支持类似 SQL 的 Select 语法:

    https://docs.microsoft.com/en-us/dotnet/api/system.data.datatable.select?view=net-5.0

            DataRowView row = (DataRowView)OtherTable.SelectedItem; 
            string serialnumbr = row.Row["SerialNumber"].ToString();        
            DataRow[] result = TableName.Select("SerialNumber =" + serialNumbr);
    
            DataRow dr = result.FirstOrDefault();
    
            if (dr != null)
            {
                DateTime dt = DateTime.Parse(dr["Date"].ToString());
            }
    

    【讨论】:

    • 我不明白这个问题,你可以编辑你的帖子解释一下
    • 谢谢,但现在我有一个新问题。所以我会告诉你这是如何工作的。问题是我从我们选择的另一个表中获得的这个序列号。这就是我得到它的方式 DataRowView row = (DataRowView)OtherTable.SelectedItem; string serialnumbr = row.Row["SerialNumber"].tostring();现在我们在 DataRow[] result = tableName.Select("SerialNumber = serialnumbr") 中使用这个序列号。在下一条评论中休息,因为这个已经太长了
    • 但是显示错误,找不到列serialnumbr。但是我尝试在消息框中打印出 serialnumbr 并显示值 149。现在我将程序更改为 DataRow[] result = tableName.Select("SerialNumber = 149") 这也有效。但是当我使用字符串变量 serialnumbr 而不是 149 时,它给了我一个错误。这可能是什么原因。谢谢。
    • 你的过滤器有一个字符串文字。它正在寻找一个不存在的行,其中列 SerialNumber = 文字字符串值 searialnumbr
    猜你喜欢
    • 2016-03-21
    • 2016-01-19
    • 2010-10-21
    • 1970-01-01
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多