71 messaggi dal 06 settembre 2007
Ho una DetailsView che uso per effettuare una INSERT; prima di spedire i dati sul database vorrei verificare, attraverso una select count, se il campo BCconsole non sia già presente. Attraverso la riga di codice: cmd.Parameters.Add("@BCconsole", SqlDbType.NVarChar).Value = DetailsView1.Rows[0].Cells[1].Text, sto cercando di intercettare il valore di BCconsole che inserisco nella cella della DetailsView in modo da passarlo come parametro alla select count.
Il problema è che il parametro mi ritorna vuoto!!!

Avete qualche idea???

Daniga




protected void DetailsView1_ItemInserting(object sender, DetailsViewInsertEventArgs e)
{
Label1.Visible = true;

SqlCommand cmd = new SqlCommand("select count(*) from T_BConnect where BCconsole=@BCconsole");
cmd.Connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SictEAIConnectionString"].ConnectionString);


try
{
cmd.Connection.Open();
cmd.Parameters.Add("@BCconsole", SqlDbType.NVarChar).Value = DetailsView1.Rows[0].Cells[1].Text;


int quanti = (int)cmd.ExecuteScalar();
if (quanti != 0)
{
Label1.Text = "Errore: Record già esistente";
e.Cancel = true;
return;
}

}

finally
{
cmd.Connection.Close();
}
}
106 messaggi dal 14 febbraio 2006
ciao, non sonon un guru di .net....ma se tu inserisci BCconsole..presumo sia una textBox....
prova a reperirla così:
((TextBox)DetailsView1.findControl("CBbcconsole")).Text

se no penso puoi usare l'evento DetailsViewInsertEventArgs e vedere che opzioni (metodi e proprietà) ti da.

ciao
71 messaggi dal 06 settembre 2007
ho modificato il codice come mi hai consigliato
BCconsoleParameter.Value = ((TextBox)DetailsView1.FindControl("BCconsole")).Text;

adesso mi da il seguente errore:

System.NullReferenceException non è stata gestita dal codice utente
Message="Riferimento a un oggetto non impostato su un'istanza di oggetto."
Source="App_Web_xxet9jaj"
StackTrace:
in BCInsert.DetailsView1_ItemInserting(Object sender, DetailsViewInsertEventArgs e) in d:\websites\documentale\BC\BCInserisci.aspx.cs:riga 56
106 messaggi dal 14 febbraio 2006
posta il codice del detailsview1 dal .aspx
71 messaggi dal 06 settembre 2007
<asp:DetailsView ID="DetailsView1" runat="server" CellPadding="4" DataSourceID="ObjectDataSource1"
Font-Names="Garamond" Font-Size="12pt"
Height="50px" Style="z-index: 100; left: 443px; position: absolute; top: 177px"
Width="167px" BackColor="#ED9F9F" BorderColor="#B51032" BorderStyle="None" BorderWidth="1px" DefaultMode="Insert" EnableViewState="False" OnItemInserting="DetailsView1_ItemInserting">
<FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
<CommandRowStyle Font-Names="Palatino Linotype" HorizontalAlign="Center" Wrap="False" />
<RowStyle BackColor="White" ForeColor="#330099" />
<PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
<Fields>
<MyWebControl:ClientRuleCommandField ButtonType="Button" ShowInsertButton="True" />
</Fields>
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
<EditRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
<InsertRowStyle Font-Names="Garamond" HorizontalAlign="Left" Wrap="False" BackColor="#ED9F9F" BorderColor="#B51032" Font-Size="12pt" />
</asp:DetailsView>
perche non recuperi il valore nella collezione Values dell'oggetto DetailsViewInsertEventArgs che viene passoto all'event handler DetailsView1_ItemInserting?

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
71 messaggi dal 06 settembre 2007
potresti indicarmi che cosa scrivere precisamente?
106 messaggi dal 14 febbraio 2006
non capisco....dové il controllo dove l'utente inserisce il campo BCconsole...non lo vedo nel tuo detailsview...il codice che ti ho dato presuppone che ci sia una textbox BCconsole nel detailsview, non funziona perché non c'é la textbox.
Il tuo detailsview contiene solo il cotrollo:
<MyWebControl:ClientRuleCommandField ButtonType="Button" ShowInsertButton="True" />

che non so come é composto....... se no reperisci un'istanza del tuo controllo con il FindControl e poi se puoi accedere alle proprietà del tuo controllo, puoi leggere il BCconsole....

magari sto dicendo stupidaggini....
ho appena visto che nostromo ti ha risposto(lui si che é pratico)....

guarda su MSDN come usare l'evento...sarà
e.Values[...]

qualcosa del genere con il nome del campo

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.