将 VB 代码转换为 C# 时出错

本文关键字:出错 转换 VB 代码 | 更新日期: 2023-09-27 18:37:11

您好,我在将 vb 转换为 c 尖锐时遇到问题

Dim Query As String = "UPDATE F_Shqip SET Lika_Sh=@Fjalet_Sh WHERE Id_Sh=@Id_Sh"
            Dim cmd As SqlCommand = New SqlCommand(Query, con)
            cmd.Parameters.AddWithValue("@Lika_Sh", Trim(Me.txbLikaSh.Text))
            cmd.Parameters.AddWithValue("@Id_Sh", Me.ListBox1.SelectedItem(0).ToString)

在 c 尖锐中:

string Query = "UPDATE F_Shqip SET Lika_Sh=@Lika_Sh WHERE Id_Sh=@Id_Sh";
                SqlCommand cmd = new SqlCommand(Query, con);
//two lines with errors
                cmd.Parameters.AddWithValue("@Lika_Sh", Strings.Trim(this.txbLikaSh.Text));
                cmd.Parameters.AddWithValue("@Id_Sh", this.ListBox1.SelectedItem(0).ToString);

将 VB 代码转换为 C# 时出错

如果您的Listbox只有一个选定的项目,请将您的代码更改为;

cmd.Parameters.AddWithValue("@Id_Sh", this.ListBox1.SelectedItem.ToString);

如果您的Listbox有多个选定项目,并且您的SelectionModeMultiExtended,则可以使用 ListBox.SelectedIndices 代替;

cmd.Parameters.AddWithValue("@Id_Sh", this.ListBox1.SelectedIndices[0].ToString);

尝试this.ListBox1.SelectedItem[0]而不是this.ListBox1.SelectedItem(0)
C# 对数组使用方括号,但 VB.NET 对数组使用括号。

而不是

cmd.Parameters.AddWithValue("@Lika_Sh", Strings.Trim(this.txbLikaSh.Text));
cmd.Parameters.AddWithValue("@Id_Sh", this.ListBox1.SelectedItem(0).ToString);

试试这个:

cmd.Parameters.AddWithValue("@Lika_Sh", this.txbLikaSh.Text.Trim());
cmd.Parameters.AddWithValue("@Id_Sh", this.ListBox1.SelectedItem[0].ToString());

以下链接可能有用:

代码项目 - VB.NET 和 C# 的完整比较

维基百科 - C Sharp 和 Visual Basic .NET 的比较

代码转换器:

DeveloperFusion - 将 VB.NET 转换为 C#

DeveloperFusion - 将 C# 转换为 VB.NET