C# rdr是一个“变量”,但与“方法”一样使用

C# rdr是一个“变量”,但与“方法”一样使用,c#,vb.net,C#,Vb.net,我正在尝试将此VB.NET代码转换为C: 受保护的子BT_KEM_CARIAN_ClickByVal发送方作为对象,ByVal e作为系统。EventArgs处理BT_KEM_CARIAN。单击 Dim cmd As System.Data.SqlClient.SqlCommand=New System.Data.SqlClient.SqlCommandSelect*from pengguna,其中idpengguna=@idpengguna,myconn cmd.CommandType=Dat

我正在尝试将此VB.NET代码转换为C:

受保护的子BT_KEM_CARIAN_ClickByVal发送方作为对象,ByVal e作为系统。EventArgs处理BT_KEM_CARIAN。单击 Dim cmd As System.Data.SqlClient.SqlCommand=New System.Data.SqlClient.SqlCommandSelect*from pengguna,其中idpengguna=@idpengguna,myconn cmd.CommandType=Data.CommandType.Text cmd.Connection=myconn 尝试 迈康,开门 将rdr2设置为SqlDataReader cmd.Parameters.AddWithValueidpengguna,KEMASKINI_MASUK.Text rdr2=cmd.ExecuteReaderCommandBehavior.CloseConnection 读 KEMASKINI_ID.Text=rdr2IDPENGGUNA.ToString KEMASKINI_IC.Text=rdr2NoIC.ToString KEMASKINI_NAMA.Text=rdr2nama.ToString KEMASKINI_MASUK.Text=rdr2idpengguna.ToString KEMASKINI_CAPAIAN.Text=rdr2kodaccesslevel.ToString 接住 MSGBox已成功更新 结束尝试 麦肯,完毕 MultiView1.SetActiveView4 端接头 结果:

protected void BT_KEM_CARIAN_Click(object sender, System.EventArgs e)
{
    System.Data.SqlClient.SqlConnection myconn = new System.Data.SqlClient.SqlConnection(System.Configuration.ConfigurationManager.AppSettings["DB"]);

    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("Select * from pengguna where idpengguna = @idpengguna", myconn);
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.Connection = myconn;

    try {
        myconn.Open();
        SqlDataReader rdr2 = default(SqlDataReader);
        cmd.Parameters.AddWithValue("idpengguna", KEMASKINI_MASUK.Text);
        rdr2 = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        rdr2.Read();
        KEMASKINI_ID.Text = rdr2("IDPENGGUNA").ToString;
        KEMASKINI_IC.Text = rdr2("NoIC").ToString();
        KEMASKINI_NAMA.Text = rdr2("nama").ToString();
        KEMASKINI_MASUK.Text = rdr2("idpengguna").ToString();
        KEMASKINI_CAPAIAN.Text = rdr2("kodaccesslevel").ToString();
    } catch {
        Interaction.MsgBox("Succesfully Updated");
    }

    myconn.Close();
    MultiView1.SetActiveView(View4);
}
下面的代码给出了错误

rdr2是一个“变量”,但使用起来像“方法”

在VB.NET中,同时是方法调用和索引,因此将C的值更改为[]


在VB.NET中,参数用于默认属性。在C中,使用方括号[]。更改rdr2。。。对于rdr2[…]。

在C中,数组项用方括号引用,而VB中所有内容都用括号引用。将其更改为:

KEMASKINI_ID.Text = rdr2["IDPENGGUNA"].ToString();
KEMASKINI_IC.Text = rdr2["NoIC"].ToString();
KEMASKINI_NAMA.Text = rdr2["nama"].ToString();
KEMASKINI_MASUK.Text = rdr2["idpengguna"].ToString();
KEMASKINI_CAPAIAN.Text = rdr2["kodaccesslevel"].ToString();

rdr2是一个对象,而不是一个方法。谢谢比尔·格雷格。。很酷。。但在我申请后,我只在这一行上得到了这个错误。。KEMASKINI_ID.Text=rdr2[IDPENGGUNA].ToString;无法将方法组“toString”转换为非degegate类型“string”。您是否打算调用该方法。谢谢Bill Gregg。。很酷。。但在我申请后,我只在这一行上得到了这个错误。。KEMASKINI_ID.Text=rdr2[IDPENGGUNA].ToString;无法将方法组“toString”转换为非degegate类型“string”。你是否打算调用你忘记的方法;实际上是在那一行的末尾。仔细检查一下,你应该是好的。是的,我在重新创建代码时在代码中修复了这个问题。我想我也应该提到这一点。
KEMASKINI_ID.Text = rdr2["IDPENGGUNA"].ToString();
KEMASKINI_ID.Text = rdr2["IDPENGGUNA"].ToString();
KEMASKINI_IC.Text = rdr2["NoIC"].ToString();
KEMASKINI_NAMA.Text = rdr2["nama"].ToString();
KEMASKINI_MASUK.Text = rdr2["idpengguna"].ToString();
KEMASKINI_CAPAIAN.Text = rdr2["kodaccesslevel"].ToString();