Наилучшее совпадение перегруженного метода для 'System.Data.Common.DbDataAdapter.Fill (System.Data.DataTable)' содержит недопустимые аргументы. - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь получить данные из базы данных оракула.Я получаю эту ошибку The best overloaded method match for 'System.Data.Common.DbDataAdapter.Fill(System.Data.DataTable)' has some invalid arguments

вот мой Профиль класс

public class Profile
    {
         public string PROF_TEXT  {set; get;}
         public string PROF_EMPL {set; get;} 
         public string PROF_NNAM {set; get;} 
         public string PROF_FNAM {set; get;} 
         public string PROF_MNAM {set; get;}  
         public string PROF_PADD   {set; get;}
         public string PROF_RADD   {set; get;}
         public string PROF_PPHN   {set; get;}
         public string PROF_HPHN   {set; get;}
         public string PROF_PNID   {set; get;}
         public string PROF_MAIL   {set; get;}
         public string PROF_REFR  {set; get;}
         public string PROF_RMRK  {set; get;}
         public string PROF_GEND  {set; get;}
         public string PROF_MARD  {set; get;}
         public string PROF_ACTV  { set; get; }
    } 

второй класс ProfileDB для соединения с базой данных

public class ProfileDB
    {
        private OracleConnection conn;
        private OracleCommand cmd;
        private OracleDataAdapter oda;
        private DataSet ds;
        string strComm;

        public   List<Profile> ListAll()   
        {
            try
            {
                List<Profile> lst = new List<Profile>();
                conn = new OracleConnection(clsConnection.ConnectionSave);
                conn.Open();
                strComm = "SELECT * FROM PROFILE";
                cmd = new OracleCommand(strComm, conn);
                oda = new OracleDataAdapter(cmd);
                oda.Fill(lst);
                conn.Dispose();
                conn.Close();
                return lst;
            }
            catch
            {
                return null;
            }
        }
    }

и класс соединения

public class clsConnection
    {
        public OracleConnection oConn;

        public clsConnection()
        {

        }

        public static string ConnectionSave
        {
            get
            {
                string oradb = "Data Source=try; User Id=try; Password =try123";
                return oradb;

            }
        }
    }

Я получаю ошибку здесь oda.Fill (lst); упоминание в заголовке.Вот столбец базы данных

Databse image.

Я очень новичок в .net.Я хочу использовать классы для соединения с базой данных.Может ли купол помочь мне в решении ошибки.Я знаю, что это глупо, но как новый не может получить решение.Заранее спасибо.Пожалуйста, дайте мне знать любую другую необходимую информацию.

1 Ответ

0 голосов
/ 06 декабря 2018

Вы не можете использовать метод Fill для заполнения List<T>, вы должны передать ему DataSet объект.Затем вы можете запросить таблицы этого объекта (или выполнить итерацию по нему) и загрузить свой List.Как то так:

oda.Fill(ds);
conn.Dispose();
conn.Close();

foreach (DataRow row in ds.Tables[0].Rows)
{
    lst.Add(/* however you create your profile instance */);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...