代码之家  ›  专栏  ›  技术社区  ›  MiOnIs

使用块中的OleDbCommand:COM对象已与其底层RCW分离,无法使用

  •  1
  • MiOnIs  · 技术社区  · 9 年前

    OleDbCommand 中的对象 using parameters

    using (OleDbCommand comm = new OleDbCommand())
            {
                comm.Connection = conn;
                comm.CommandType = CommandType.Text;
                string txt = "SELECT* FROM [ListForGroup] WHERE [email] = @email";
                comm.Parameters.Add("@email", OleDbType.VarWChar).Value = userEmail;
                comm.CommandText = txt;
                conn.Open();
                OleDbDataReader reader = comm.ExecuteReader();
                List<ListForGroups> list = returnLists(reader);
                conn.Close();
                cmbSelectList.DataSource = list;
                cmbSelectList.DisplayMember = "listName";
                cmbSelectList.ValueMember = "listForGroupsID";
            }
    

    有人知道原因吗。我可以将其解析为使用 OLEDB命令 具有的对象 CommandText 但我读到这是个坏主意。我想在 使用

    1 回复  |  直到 9 年前
        1
  •  0
  •   MiOnIs    9 年前

    我解决了这个问题

    using (OleDbConnection conn = new OleDbConnection(connString))
        {
            OleDbCommand comm = new OleDbCommand();
            comm.Connection = conn;
            comm.CommandType = CommandType.Text;
            string txt = "SELECT* FROM [ListForGroup] WHERE [email] = @email";
            comm.Parameters.Add("@email", OleDbType.VarWChar).Value = userEmail;
            comm.CommandText = txt;
            conn.Open();
            OleDbDataReader reader = comm.ExecuteReader();
            List<ListForGroups> list = returnLists(reader);
    
            cmbSelectList.DataSource = list;
            cmbSelectList.DisplayMember = "listName";
            cmbSelectList.ValueMember = "listForGroupsID";
        }
    

    OleDbConnection 在旁边的括号中 using connection 之后