[英]DataBinding: 'System.Data.DataRow' does not contain a property with the name 'Caption'
[英]System.Data.DataRow' does not contain a definition for 'Item'
我試圖從TreeView控件中控制datagridview,並且也從VB.Net轉換為C#,並且在這兩行遇到了錯誤:
sRef = lWADataBaseDataSet.orderTBL.Rows[I].Item[0];
sOrder = lWADataBaseDataSet.orderTBL.Rows[I].Item[1];
本教程中的代碼是(包含我的數據庫信息):
if treeView1.SelectedNode is nothing then
orderTBLDataGridView.DataSource = nothing
exit sub
end if
if treeview1.SelectedNod.Name = "root" then
orderTBLDataGridView.DataSource = nothing
exit sub
end if
dim sRef as string
sRef = treeview1.SelectedNode.name
orderTBLDataGridView.DataSource = lWADataBaseDataSet.orderTBL("id=" & id);
所有代碼:
public void ordersForm_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'lWADataBaseDataSet.orderTBL' table. You can move, or remove it, as needed.
this.orderTBLTableAdapter.Fill(this.lWADataBaseDataSet.orderTBL);
string sRef = null;
string sOrder = null;
int I = 0;
for (I = 0; (I
<= (lWADataBaseDataSet.orderTBL.Count - 1)); I++)
{
sRef = lWADataBaseDataSet.orderTBL.Rows[I].Item[0];
sOrder = lWADataBaseDataSet.orderTBL.Rows[I].Item[1];
treeView1.Nodes[0].Nodes.Add(sRef, sOrder);
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if ((treeView1.SelectedNode == null)) {
orderTBLDataGridView.DataSource = null;
return;
}
if ((treeView1.SelectedNode.Name == "root")) {
orderTBLDataGridView.DataSource = null;
return;
}
string sRef;
sRef = treeView1.SelectedNode.Name;
orderTBLDataGridView.DataSource = lWADataBaseDataSet.orderTBL.Select(("Reference=" + sRef));
}
您可以簡單地這樣調用項目:
sRef = lWADataBaseDataSet.orderTBL.Rows[I][0];
sOrder = lWADataBaseDataSet.orderTBL.Rows[I][1];
無需在VB中聲明Item,因為C#DataRow.Items本身就是索引器。
使用字段擴展方法:
sRef = lWADataBaseDataSet.orderTBL.Rows[I].Field<string>(0);
sOrder = lWADataBaseDataSet.orderTBL.Rows[I].Field<string>(1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.