• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

black

update numa gridview

7 mensagens neste tópico

bom dia caros utilizadores,

estou a desenvolver um um projecto no qual inseri uma gridview e para ja tenho um botao que faz com que insira uma nova linha de dados aqui vai o codigo do .cs:

SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["AppFLGConnectionString2"].ConnectionString);

SqlCommand cmd = new SqlCommand();

string sqlCommText;

sqlCommText = "INSERT INTO tbl_AEC_Agrupamentos (strNome, strContacto,idAgrupamento) values ('{0}', {1}, {2})";

sqlCommText = string.Format(sqlCommText, Txtnome.Text, Txtcontacto.Text, 104);

SqlCommand sqlComm = new SqlCommand(sqlCommText, sqlConn);

sqlConn.Open();

sqlComm.ExecuteNonQuery();

sqlConn.Close();

Response.Redirect("Agrupinsert.aspx");

aqui tudo bem, porem agora inseri um comandfiel(editar) na gridview mas quando faxo editar os dados ficam numa caixa de texto porem quando faxo update dix que nao tenho o comando update inserido aqui fica o erro:

Updating is not supported by data source 'SqlDataSource1' unless UpdateCommand is specified.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NotSupportedException: Updating is not supported by data source 'SqlDataSource1' unless UpdateCommand is specified.

alguem me pode ajudar..

o que tenho de inserir no .cs??????

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não sei o que quer dizer "faxo" nem "dix" mas

o que terás de fazer é, tal como o erro indica, definir um UpdateCommand no SqlDataSource1,

dá uma olhadela (acho que podes vê-los nas propriedades do datasource) nos outros comandos dessa dataSource para teres uma ideia de como fazer o Update

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

fui as propriedade do datasource e em updatequery inseri:

UPDATE    dbo.tbl_AEC_Agrupamentos

SET              strNome = strNome

WHERE    (idAgrupamento = 1080)

porem agora quando carrego em update ele volta a devolver o valor antido, ou seja vai buscar a base de dados o valor antigo antes de inserir o que eu editei...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso porque o teu Update command não está correcto.

Ao teres o "SET strNome = strNome" é claro que ele vai manter o valor actual da BD.

Tens que ter no teu update command algo do tipo

UpdateCommand = "UPDATE tabela SET campo = @campo WHERE campo = filtro"

Depois tens que criar um parametro

<UpdateParameter>

<asp:Parameter Name="campo" Type="String" />

</UpdateParameter>

Da uma olhadela neste link ao "VB Gridview Updating"

http://quickstarts.asp.net/quickstartv20/aspnet/doc/ctrlref/data/gridview.aspx

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

como crio esse <UpdateParameter> eu estou a utilizar a linguagem c#...

e estou a inserir as funções todas no .cs

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nome_do_datasource.UpdateParameters.Add(new Parameter("campo",DbType.String"));

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

    protected void GridView1_SelectedIndexChanged1(object sender, EventArgs e)

    {

            SqlDataSource1.UpdateParameters.Add(new Parameter("campo",DbType.String));

    }

tem de ficar algo assim???

mas nao da... tenho de defenir algo no using

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora