将VB转换为C#

时间:2010-07-01 00:28:38

标签: c# vb.net

我需要一些帮助将一些VB.NET代码转换为C#。我已经尝试了几个“代码转换器”,但没有一个能给我一个可行的响应。

以下是代码:

If Me.OrdersDataGridView.SelectedRows.Count > 0 Then
Dim editForm As New Order(Me.NorthwindDataSet, _
    Me.NorthwindDataSet.Orders.Rows.IndexOf_
    (CType(CType(Me.OrdersDataGridView.SelectedRows(0)._
    DataBoundItem, DataRowView).Row, NorthwindDataSet.OrdersRow)))
    editForm.Show()
End If

非常感谢任何帮助!

编辑:这是我发现的原始文章的link

3 个答案:

答案 0 :(得分:6)

试试这个:

if (this.OrdersDataGridView.SelectedRows.Count > 0)
{
    NorthwindDataSet.OrdersRow row = (NorthwindDataSet.OrdersRow)
                                       ((DataRowView)this.OrdersDataGridView
                                            .SelectedRows(0).DataBoundIte).Row;

    Order editForm = new Order(
                           this.NorthwindDataSet,
                           this.NorthwindDataSet.Orders.Rows.IndexOf(row));

    editForm.Show();
}

答案 1 :(得分:0)

if (this.OrdersDataGridView.SelectedRows.Count > 0)
{
    Order editForm = new Order(this.NorthwindDataSet,
        this.NorthwindDataSet.Orders.Rows.IndexOf((NorthwindDataSet.OrdersRow)((DataRowView)this.OrdersDataGridView.SelectedRows[0].DataBoundItem).Row);
    editForm.Show();
}

好的,我认为我输入的是正确的。

答案 2 :(得分:0)

如果代码转换器在这里失败,可能是因为您需要在Visual Studio解决方案中引用该特定数据库才能使其正常工作。

转换应该是这样的:

if (this.OrdersDataGridView.SelectedRows.Count > 0)
{
    var dataRowView = (DataRowView) this.OrdersDataGridView.SelectedRows(0).DataBoundItem;
    var ordersRow = (NorthwindDataSet.OrdersRow) dataRowView;
    var editForm = new Order(this.NorthwindDataSet, ordersRow)
    editForm.Show()
}