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