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

Damon4hire

C# e Sql Server MS

8 mensagens neste tópico

Boas pessoal

Estou a fazer um pequeno projecto para ser avaliado e estou a ter uns precalços

a lidar com a interacção dos 2 programas.

Já sei como executar stored procedures a partir do C#.

A ideia é inserir um novo registo (sócio de um clube) e receber o campo identidade

desse registo(@@identity, certo?), mas não sei como receber o valor retornado no C#.

Uma ajuda por favor? :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fazes uma stored procedure em q depois do insert fazes:

select @@identity

ou

select scope_identity()

No C# fazes um ExecuteScalar. Este método retorna um objecto q deves converter parar o valor q queres.

Outra maneira é colocares um parametro de output na procedure q afectas com o valor da identidade.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

epa não deu.

Fiz var = sqlcommand.ExecuteScalar();

diz que está a sintaxe errada.

Falta alguma coisa?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso assim n é nada.

Tens q ter uma ligação à base de dados, uma connection string,...

Só com essa linha n é possivel ajudar-te.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

epa não deu.

Fiz var = sqlcommand.ExecuteScalar();

diz que está a sintaxe errada.

Falta alguma coisa?

Falta.

Falta o nome da variável.

var xpto = sqlcommand.ExecuteScalar();

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, isso sem o nome da variável nem sequer compila.

A menos q seja uma nova feature do C# ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

public partial class admin : System.Web.UI.Page

{

    public SqlConnection SQLConn = new SqlConnection(@"Data Source=xxxxx;Initial Catalog=db_xxxxx;Integrated Security=True");

    public void Page_Load(object sender, EventArgs e)

    {

        Session.Timeout = 5;

        SQLConn.Open();

xxx

xxx

xxx

isto conta todos os registos

    public void contador(int registos)

    {

        SqlCommand cmd = new SqlCommand("SELECT * FROM xxx  WHERE xxx = '" + xxx + "'", SQLConn);

        SqlDataReader contador = cmd.ExecuteReader();

        while (contador.Read())

        {

            registos += 1;

        }

        contador.Close();

        conta = registos;

    }

isto e para escrever

string sqlIns = "INSERT INTO xxxxxx VALUES ('" + xxxxxx + "'" +

                            ", '" +xxxxx+ "'" +

                            ", '" + xxxxx + "'" +

                            ", '" + xxxxx + "'" +

                            ", '" +xxxx + "'" +

                            ", '" + xxxxxxt + "'" +

                            ", '" +xxxxxxx + "'" +

                            ", '" + xxxxxxx + "'" +

                            ", '" + xxxxxx+ "'" +

                            ",'','" +xxxxxx + "')";

            SqlCommand resultado = new SqlCommand(sqlIns, SQLConn);

            try

            {

                resultado.ExecuteNonQuery();

            }

            catch (Exception ex)

            {

                Response.Write("Error: " + ex.Message);

                return;

            }

este exemplo e para apagar um registo de uma tabela, que esta ligado a um outro registo de outras tabelas...

public void ApagarSelecionado(object sender, EventArgs e)

    {

        conn.Open();

        SqlCommand apagar1 = new SqlCommand("DELETE FROM xxxxxWHERExxxxx in(select xxxxx.xxxxx from ,xxxxxx where xxxxx = '" + xxxxx +

            "' and cxxxxxx.xxxxx.xxxxx)",conn);

        SqlCommand apagar2 = new SqlCommand("DELETE FROM xxxxx WHERE xxxxx= '" + xxxx + "'", conn);

        try

        {

            apagar1.ExecuteNonQuery();

            apagar2.ExecuteNonQuery();

            Items.Clear();

            Logoff();

            Abrir();

        }

        catch (Exception ex)

        {

            Response.Write("Error: " + ex.Message);

            return;

        }

    }

enfim, tens aki montes de exemplos do que podes fazer.....para auto incrementares, basta fazeres na base de dados, e a chave k estiver no sql e k tem de ser incrementada, para inserir o registo no c# basta inserires sem a chave...para veres, usas o exemplo que te deram

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