Problema MySql, definizione DataSet

mercoledì 09 marzo 2011 - 09.59
Tag Elenco Tags  C#  |  .NET 3.0  |  .NET 3.5  |  .NET 4.0  |  Visual Studio 2008  |  MySQL 5.5

n3mesi Profilo | Newbie

Ciao a tutti,
dovrei popolare una gridview da una tabella MySql.
Mi sono scaricato il connector .NET da MySql e aggiungo una connessione al database mysql.
Aggiungo un dataset e ci trascino la tabella direttamente da esplora server.
Mi viene creato in automatico il datatable e il table adapter.
Quando vado a configurare getData() dal tableAdapter (una semplice select * from tabella), quando faccio esegui query mi da:
Errore di esecuzione SQL. You have an error in your sql sintax at line 1. mi dice near .tabella, dopo il from.
Vedendo la query, visual studio mi mette "FROM def.miodb.tabella". Ho provato a cancellare def.miodb., ma me lo rimette in automatico.
Se vado poi a configurare l'origine dati per popolare la gridview, quando apro la pagina sul browser, ho lo stesso errore.
Sapete darmi qualche dritta? Devo farmi tutto a manina?

beppenike Profilo | Newbie

Ti riporto un mio pezzo di codice:

string datiRaw= "SELECT * FROM mia_tabella";
MySqlDataAdapter mda = new MySqlDataAdapter(datiRaw, connection);
DataSet ds = new DataSet();
MySqlCommandBuilder builder = new MySqlCommandBuilder(mda);
mda.Fill(ds, "mia_tabellai");
dataGridView1.DataSource = ds.Tables["mia_tabella"];

spero di esserti stato d'aiuto :)

n3mesi Profilo | Newbie

Grazie beppenike,
anche io avevo fatto così su un'altra mia tabella, però senza il commandbuilder!
Che farebbe di preciso? Senza di quello mi funziona uguale.
Nell'altro modo non si riesce?
Perchè purtroppo nella tabella che mi interessa ho 103 colonne (non posso evitarlo!), e me ne servono in realtà 77, e volevo evitare scrivermi a mano il nome di tutte le 77 colonne!! Nell'altro modo dovevo solo selezionarle con le checkbox!!

Grazie per l'interessamento!
Mi sa che mi armo di pazienza e me le faccio a mano!

beppenike Profilo | Newbie

Si il mysqlcommandbuilder serve solo in caso di modifiche della tabella, ho dimenticato di toglierlo visto che ti serviva ben altro.


string connectionString;
string server = "mioserver.org";
string database = "my_server";
string uid = "mia_user";
string password = "mia_pass";
connectionString = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
MySqlConnection connection = new MySqlConnection(connectionString);
string datiRaw= "SELECT * FROM posizioni";

Prova a verificare se ci sono tutti i parametri necessari per collegarsi al database

n3mesi Profilo | Newbie

Si si, in questo modo mi funziona! Solo che volevo evitare di scrivere la select a mano :P!
Ho una "SELECT col1, col2, col3, ....fino a 77 colonne FROM miatab", ne avrei più di 100, ma me ne occorrono 77, per cui non posso fare select * e me le devo scrivere!
Siccome i nomi delle colonne sono anche lunghi, cercavo di non scriverli a mano, quindi utilizzando il visual studio volevo fare la query costruendomi il dataset con lo wizard, in modo da costruire la query selezionando le colonne con le checkbox, ma a quanto pare ci sono problemi di compatibilità con MySql, mentre con sql server express non ci sono problemi...quindi mi tocca scrivere la select a mano...pazienza!!

Grazie!

beppenike Profilo | Newbie

Ah ecco, potresti cambiare la struttara del tuo db: uno con le 77 che ti servono e l'altra con le restanti, dopo crei una relazione 1:1 e credi che risolvi uguale, spero ^.^

n3mesi Profilo | Newbie

Non male come idea!! La valuterò!! Grazie! ;)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5