ciao, ho creato un ODS con le relative classi per il select e l'update e funziona, finche non incontra i campi datetime, dove da l'errore:
Impossibile convertire da "System.String" to "System.DateTime"

ma se la classe per il select lo preleva come datetime, e la classe update lo vede come datetime, allora chi lo rende "string"?
Forse è il gridview che lo formatta {0:d}?

//esempio del codice C#
private DateTime _data;

public DateTime Data { get.... set... }

public Select(id)
{
...
this._data = (DateTime)datareader["campo_db_data"];
...
}

public Update(Classe C)
{
...
this._data = C.Data
...
sc.Parameters.AddWithValue("@campo_db_data", _data);
...
sc.ExecuteNonQuery() // a questo punto ricevo l'errore di conversione
}

jQuery & Azure ... come ho fatto a stare senza fin'ora!

Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna.
-Albert Einstein-
sicuramente per la visualizzazione viene convertito in string ma in modo trasparente dovrebbe essere "reidratato".

posta la parte dichiarativa del ODS e magari la firma dei metodi che usi.

non sono mai incappato in un problema simile.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
Nel dubbio posto tutto, gridview, ODS e classi, non sono lunghissime, comunque le ho accorciate levando i campi che non danno errore per non occupare troppo spazio nel db del forum

<asp:GridView id="sociElencoGridView" runat="server" SkinID="elenco" DataSourceID="sociElencoODS" AutoGenerateColumns="False" DataKeyNames="Id_socio" OnSelectedIndexChanged="sociElencoGridView_SelectedIndexChanged"><Columns>
....//altri campi string e int....
<asp:BoundField HtmlEncode="False" DataFormatString="{0:d}" DataField="Data_inserimento_socio" SortExpression="Data_inserimento_socio" HeaderText="Ammissione" ApplyFormatInEditMode="True"></asp:BoundField>
<asp:BoundField HtmlEncode="False" DataFormatString="{0:d}" DataField="Data_dimissioni_socio" SortExpression="Data_dimissioni_socio" HeaderText="Dimissioni" ApplyFormatInEditMode="True"></asp:BoundField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource id="sociElencoODS" runat="server" OldValuesParameterFormatString="original_{0}" TypeName="SociManager" SelectMethod="sociElencoCoop" DataObjectTypeName="Socio" UpdateMethod="Update"><SelectParameters>
<asp:ControlParameter PropertyName="SelectedValue" Type="Int32" Name="id_cooperativa" ControlID="elencoCoopGridView"></asp:ControlParameter>
<asp:ControlParameter PropertyName="SelectedDate" Type="DateTime" Name="data_rapporto" ControlID="data_rapporto"></asp:ControlParameter>
</SelectParameters>
</asp:ObjectDataSource>

public Socio Update(Socio SocioModificato)
{
Socio aggiornaSocio = new Socio(SocioModificato);

return aggiornaSocio;
}

public Socio(Socio SocioModificato)
{
//altri int e string
this._data_inserimento_socio = SocioModificato.Data_inserimento_socio;
this._data_dimissioni_socio = SocioModificato.Data_dimissioni_socio;

ConnectionStringSettings cts = ConfigurationManager.ConnectionStrings["gu2007CS"];

SqlConnection conn = new SqlConnection(cts.ConnectionString);

SqlCommand sc = new SqlCommand("sp_socio_update", conn);
sc.CommandType = CommandType.StoredProcedure;
//altri parametr int e string
sc.Parameters.AddWithValue("@data_inserimento_socio", _data_inserimento_socio);
sc.Parameters.AddWithValue("@data_dimissioni_socio", _data_dimissioni_socio);

try
{
conn.Open();

sc.ExecuteNonQuery();
}
catch(SqlException)
{
throw;
}
finally
{
conn.Close();
}
}

jQuery & Azure ... come ho fatto a stare senza fin'ora!

Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna.
-Albert Einstein-
credo di aver capito anche se non mi torna tanto il punto dell'eccezione.

puoi fare il seguente test:

sostituisce
<asp:BoundField HtmlEncode="False" DataFormatString="{0:d}" DataField="Data_inserimento_socio" SortExpression="Data_inserimento_socio"


con una TemplateField contentente un controllo colander e bindato al campo Data_inserimento_socio e naturalmente fai lo stesso per l'altro campo DateTime.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
utilizzando i calendar funziona tutto correttamente

jQuery & Azure ... come ho fatto a stare senza fin'ora!

Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna.
-Albert Einstein-
investigherò se esistono altre soluzioni, questa è la più veloce che mi è venuta in menete, se non è un problema per adesso usa i controlli Calendar.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
per ora uso il detailsview, i calendar occupano troppo spazio :-)

jQuery & Azure ... come ho fatto a stare senza fin'ora!

Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna.
-Albert Einstein-
con il DetailView non hai questo problema? per curiosità puoi postare il codice dichiarativo del DetailsView.

ciao marco
Modificato da nostromo il 13 novembre 2006 16.46 -

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC