C# SQLCE, nahrání datatable – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

C# SQLCE, nahrání datatable – .NET – Fórum – Programujte.comC# SQLCE, nahrání datatable – .NET – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
25. 6. 2012   #1
-
0
-

Poradíte mi prosím? Potřebuji nahrát do databáze proměnnou typu DataTable, takže se snažím přepsat původní tabulku co již v databázi je, uvedu příklad.

public void UpdateTable(DataTable table, string tableName)
        {
            using (SqlCeConnection con = new SqlCeConnection(conString))
            {
                con.Open();
                SqlCeDataAdapter adapter = new SqlCeDataAdapter("SELECT * FROM " + tableName, con);
                DataSet data = new DataSet();
                adapter.Fill(data,tableName);  // načte dataset z databáze
                table.TableName = tableName;   // pojmenuje se tabulka stejně jako ta co v databázi už je
                data.Tables.Remove(tableName);  // smaze se původní tabulka.
                data.Tables.Add(table);    // přidá novou tabulku

                adapter.Update(data); //Chyba Update unable to find TableMapping['Table'] or DataTable 'Table'.
                con.Close();
            }
        }

Teoreticky by to mělo fungovat, samozřejmně teorie a praxe je jiná :). Jediné co mi musí zůstat je vstup TableData. Vím jak to udělat díky for atd... , ale nemyslím si že to je ta správná cesta. 

Používám Microsoft SQL Server® Compact

Předem děkuji za jakoukoliv odpověď.

Nahlásit jako SPAM
IP: 82.208.25.–
http://www.davidrosko.gekoni.cz/
Reklama
Reklama
Vaizo0
Stálý člen
25. 6. 2012   #2
-
0
-

Nechybí ti tam náhodou příkaz na update?

Něco ve stylu: adapter.UpdateCommand = builder.GetUpdateCommand(), kde builder je typu SqlCeCommandBuilder?

Nahlásit jako SPAM
IP: 195.59.208.–
simas0
Newbie
25. 6. 2012   #3
-
0
-

Není to tím, že tu tabulku odstranis z kolekce? Nevím jak přesně to funguje, ale má ta nová tabulka stejná metadata?

Nahlásit jako SPAM
IP: 193.165.10.–
3. 7. 2012   #4
-
0
-

#2 Vaizo
Rozumím co máš asi na mysli, ale to je zatím vše :D. Tedkom bych to potřeboval dostat do mé mysli. Neuvedl by jsi nějaký příklad, třeba v kódů který jsem zde zveřejnil?

No zkusím se zatím podle tvé rady něco vykouzlit.

Nahlásit jako SPAM
IP: 82.208.25.–
http://www.davidrosko.gekoni.cz/
7. 7. 2012   #5
-
0
-

Tak bohužel zatím nic, pomocí tohoto kódu se mi daří nahrát novou tabulku do databáze ale bohužel to jen přidá data k té stare ale nepřepíše. Jak mám udělat aby to přepsalo tu původní tabulku a né jen k ní přidalo?

 public void UpdateTable(DataTable table, string tableName)
        {
            SqlCeConnection mSqlConnection = new SqlCeConnection(conString);
            String mQueryForSqlDataAdapter = "Select * from Ceny";
            SqlCeDataAdapter tmpSqlDataAdapter;
            SqlCeCommandBuilder tmpSqlCommandBuilder;
            DataTable tmpDataTable = new DataTable();
            tmpSqlDataAdapter = new SqlCeDataAdapter(mQueryForSqlDataAdapter, mSqlConnection);
            tmpDataTable = tmpSqlDataAdapter.FillSchema(tmpDataTable, SchemaType.Mapped);
            tmpSqlCommandBuilder = new SqlCeCommandBuilder(tmpSqlDataAdapter);
            tmpSqlDataAdapter.Update(table);
}
Nahlásit jako SPAM
IP: 82.208.25.–
http://www.davidrosko.gekoni.cz/
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 49 hostů

Podobná vlákna

Náhrání DataRow do DataTable — založil David Roško

Tisk obsahu DataTable — založil Tisk

Entita do DataTable (WinForms) — založil VladislavK

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý