Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从DataTable/DataSet中的搜索创建DataRow_C#_Asp.net_.net - Fatal编程技术网

C# 从DataTable/DataSet中的搜索创建DataRow

C# 从DataTable/DataSet中的搜索创建DataRow,c#,asp.net,.net,C#,Asp.net,.net,我正在数据库访问方面取得进展。。。 以下是我需要做的: 我有一个在类名称空间中定义的现有数据集(因此也有一个DataTable),我正在尝试创建一个函数,允许用户从项目列表中进行选择,并使用SelectedItem.Value(其中包含数据库中唯一的主键)显示有关所选项目的更多信息。我认为我需要搜索数据集并将其读入类似DataRow的内容,以便显示其中的值(有一种基于列名的方法,对吗?) 我就是搞不懂怎么说“复制/选择主键“partnumber”等于SelectedItem.Value的行”有三

我正在数据库访问方面取得进展。。。 以下是我需要做的: 我有一个在类名称空间中定义的现有数据集(因此也有一个DataTable),我正在尝试创建一个函数,允许用户从项目列表中进行选择,并使用
SelectedItem.Value
(其中包含数据库中唯一的主键)显示有关所选项目的更多信息。我认为我需要搜索数据集并将其读入类似DataRow的内容,以便显示其中的值(有一种基于列名的方法,对吗?)


我就是搞不懂怎么说“复制/选择主键“partnumber”等于
SelectedItem.Value的行”

有三种常用方法

  • 仅当列被定义为主键时才能使用

  • 使用类似字符串的筛选器

  • 使用

    var行=(来自表中的t.AsEnumerable()
    其中t.Field(“Id”)==SelectedItem.Value
    选择t.First();
    

  • 你看过“DataTable.Select()”了吗:我有
    DataRow[]myRows=queryTable.Select(“productsid=”+selectionList.SelectedItem.Value+”)
    但是它返回一个错误,说找不到列[prodcutsid],尽管这显然是列名之一(除非在本例中区分大小写)@Conrad Frix Ok,所以我正确地使用了Select方法。但是,我的数据集似乎不包含任何数据。你知道为什么吗?我有
    公共部分类默认值:System.Web.UI.Page{DataSet queryData=new DataSet();DataTable queryTable=new DataTable();
    然后在按钮事件处理程序中,我查询数据库(实际上是一个Web服务),如:
    受保护的void updateTable(项目发送方,事件参数e){queryData=pws.Query…//web服务方法queryTable=queryData.Tables[“parts”]}
    那么这个函数
    保护void updateData(object sender,EventArgs e){//如您的答案所示}
    您什么时候调用
    .Select()
    这也是填充数据集的按钮处理程序中的吗?否,.Select()从“selectedIndexChanged”调用下拉列表的处理程序。我正在显示一个表,然后希望用户在该表打开后从下拉列表中进行选择。从下拉列表中选择一个项目后,我希望显示其他信息。好的,因此每次回发
    queryData
    queryTable
    时都要重新初始化。为了保留数据设置为活动您将需要执行某些操作。通常人们使用
    Session
    。例如,将
    Session[“QueryTable”]=QueryTable;
    添加到按钮处理程序和
    if(IsPostBack){QueryTable=(DataTable)Session[“QueryTable”];}
    下载到您的页面。非常好!这解决了我的问题。我想我终于开始了解所有这些数据和绑定内容了!:-)
    var row = table.Rows.Find(SelectedItem.Value)
    
    var rows = table.Select("IdFieldSelectedItem.Value = " + SelectedItem.Value);
    var row = rows[0];
    
    var row =  (from t in table.AsEnumerable()
                where t.Field<int>("Id") == SelectedItem.Value
                select t).First();