Search code examples
c#sql.net-4.5

C# best way to handle SQL query


I want to read database records with one function and pass result as array to another function. How can I do it with .NET4.5?

namespace test
{
    class Program
    {
        static void Main()
        {
            ... data = GetData();
            string result = HandleData(data);
        }

        private static string HandleData(... data)
        {
            return string result
        }

        private static ... GetData()
        {
            ... result = new ...;
            SqlDataReader reader;
            using (SqlConnection conn = new SqlConnection(conf))
            {
                 string query = "SELECT [ID], [Desc], [tID] FROM [table] WHERE [Updated] = 0";
                 try
                 {
                     conn.Open();
                     SqlCommand cmd = new SqlCommand();
                     cmd.CommandText = query;
                     cmd.Connection = conn;
                     reader = cmd.ExecuteReader();

                     if(reader.HasRows)
                     {
                          while (reader.Read())
                          {
                               result.Add(reader[0], reader[1], reader[2]);
                          }
                     }
                     reader.Close();

                 }
                 catch(Exception e)
                 {
                 }
                 finnaly
                 {
                     conn.Close();
                     conn.Dispose();
                 }
             }
             return result;
         } 
     }
 }

Which datatype should I use for result variable and how to correct organize data inside?

Followed on stackoverflow's rules I'm adding this text to my question, because it says that is question contains mostly code.


Solution

  • you can store value to datatable from sql and then you can convert datatable to arrey by using linq here is code

     Private static ... GetData()
               {
                 try
                    {
                      var dt = new DataTable();
                      var cmd = new SqlCommand();
                      cmd.CommandText = @"SELECT name,address FROM [table_name] WHERE id = @id";
                      cmd.Parameters.AddwithValue("@id",id);
                      var da = new SqlDataAdapter(cmd);
                      da.Fill(dt);
                    }
                 catch (Exception ex)
                    {
    
                    }
                 finally
                    {
                      if (cmd.Connection.State == ConnectionState.Open)
                       {
                         cmd.Connection.Close();
                       }
                    }
    
                   var stringArr = dt.Rows[0].ItemArray.Select(x => x.ToString()).ToArray();
                   return stringArr;
               }