Avatar billede dk_akj Nybegynder
03. januar 2008 - 10:50 Der er 12 kommentarer og
1 løsning

Array som parameter til udtræk af data via datagridview.

Hej,

Jeg bruger datagridviews og datasets til at trække data ud af en Oracle database.

Kan det være rigtigt at man, som argument i sql'en, ikke kan bruge et array ?
Efter hvad jeg her googlet mig frem til skal man indsætte data fra array i en tabel og så joine den vej rundt ??

//akj
Avatar billede nielle Nybegynder
03. januar 2008 - 13:17 #1
Hvad mener du med at du ønsker at kunne bruge et array som argument i en sql-sætning?
Avatar billede dk_akj Nybegynder
03. januar 2008 - 13:23 #2
Som i

Dette virker i sqlplus:
select * from tbl_a where id in (1,2,3)

Men ikke i C# (vs2005)
select * from tbl_a where id in (:ids)


//akj
Avatar billede nielle Nybegynder
03. januar 2008 - 14:07 #3
I SQLplus er alt tekststrenge.

I VS 2005 kan man sagtens arbejde med array af andre typer. Derfor bliver man nødt til selv at knvertere til streng:

            int[] intArr = new int[] { 1, 2, 4 };

            string[] strArr = new string[intArr.Length];
            for (int idx = 0; idx < intArr.Length; idx++)
            {
                strArr[idx] = intArr[idx].ToString();
            }
            string inPart = string.Join(",", strArr);

            string sql = "select * from tbl_a where id in (" + inPart + ")";
Avatar billede dk_akj Nybegynder
03. januar 2008 - 14:34 #4
ja, men hvordan bruger jeg så inPart som argument ?

this.SPCAVGTableAdapter.Fill(this.ds_spcvalues.SPCAVG,reportid,inPart);

//akj
Avatar billede nielle Nybegynder
03. januar 2008 - 14:53 #5
Det skal mikses sammen med den SQL sætning du må have et eller andet sted i din kode.
Avatar billede dk_akj Nybegynder
03. januar 2008 - 15:30 #6
Hmm, det er vel en property et sted på ds_spcvalues ??

//akj
Avatar billede nielle Nybegynder
03. januar 2008 - 16:08 #7
Desværre ingen anelse... Jeg plejer at programmere den slags fra bunden af uden at benytte mig ret meget af VS' drag'n'drop programmering.
Avatar billede dk_akj Nybegynder
04. januar 2008 - 09:11 #8
Ok, så sharp er jeg desværre ikke :-)

Har du et hurtigt eksempel på hvordan man laver et recordset som i VB/asp ? Jeg syntes det er noget rod med x datagridview på en form for at hente data ind i et array.

//akj
Avatar billede nielle Nybegynder
04. januar 2008 - 20:39 #9
.NET har ikke recordsets.

Der nærmeste man kommer til den måde man bruger recordsets er en reader, og den kode kunnef.eks. se spdan ud (selv om du nok bruger Oracles løsning i stedet for "System.Data.OracleClient"):

using System;
using System.Data.OracleClient;

namespace e812766
{
    class Program
    {
        static void Main(string[] args)
        {
            string connStr = " ... ";

            using (OracleConnection conn = new OracleConnection(connStr))
            {
                string sql = "SELECT ditFelt1, ditFelt2 FROM dinTabel ORDER BY ditFelt1 ASC";
                OracleCommand cmd = new OracleCommand(sql, conn);

                conn.Open();

                OracleDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    Console.WriteLine(reader["ditFelt1"].ToString() + " " + reader["dittFelt2"].ToString());
                }

                reader.Close();
                conn.Close();
            }
        }
    }
}
Avatar billede nielle Nybegynder
14. januar 2008 - 18:38 #10
Er du kommet vidre med denne her?
Avatar billede dk_akj Nybegynder
24. januar 2008 - 10:42 #11
Jeg har desværre ikke haft tid til at rode mere med det.
Vender tilbage-.
Avatar billede dk_akj Nybegynder
04. juni 2008 - 11:41 #12
Jeg har købt datawindow.net fra Sybase, det gør det til en leg at trække data ud samt opdatere data.

Et svar ?

//akj
Avatar billede nielle Nybegynder
04. juni 2008 - 18:15 #13
Svar :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester