Jump to content
firefighter

Problema conecção SQL

Recommended Posts

firefighter

nome da base de dados: Jogo

nome da tabela que quero fazer conecção: TRegiao

na clausula "where" da conecção, tenho que fazer a validação do ID_Jogador

o valor que quero ter, é o: nhangar

o código que tenho é o seguinte:

// 1. Instantiate the connection
        SqlConnection conn = new SqlConnection(
            "Data Source=(Jogo);Initial Catalog=Jogo;Integrated Security=SSPI");

        SqlDataReader rdr = null;

        try
        {
            // 2. Open the connection
            conn.Open();

            // 3. Pass the connection to a command object
            SqlCommand cmd = new SqlCommand("select * from TRegiao where ID_Jogador = @ID_Jogador", conn);

            //
            // 4. Use the connection
            //

            try
            {
                SqlDataReader myReader = null;
                SqlCommand myCommand = new SqlCommand("select * from TRegiao", conn);
                myReader = myCommand.ExecuteReader();
                while (myReader.Read())
                {
                    Console.WriteLine(myReader["nhangar"].ToString());
                    //Console.WriteLine(myReader["n"].ToString());
                }

            }
            catch (Exception a)
            {
                Console.WriteLine(a.ToString());
            }

            using (SqlCommand command = new SqlCommand("SELECT * FROM TRegiao", conn))
            {
                //
                // Instance methods can be used on the SqlCommand instance.
                // ... These read data from executing the command.
                //
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        for (int i = 0; i < reader.FieldCount; i++)
                        {
                            Console.WriteLine(reader.GetValue(i));
                            lbcargueiropequeno.Text = "nhangar";
                        }
                        Console.WriteLine();
                    }
                }
            }


            // get query results
            rdr = cmd.ExecuteReader();

            // print the CustomerID of each record
            while (rdr.Read())
            {
                Console.WriteLine(rdr[0]);
            }
        }
        finally
        {
            // close the reader
            if (rdr != null)
            {
                rdr.Close();
            }

            // 5. Close the connection
            if (conn != null)
            {
                conn.Close();
            }
        }

erro:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

na linha

conn.Open();

alguem me sabe dizer porque?

obrigado

Share this post


Link to post
Share on other sites
Caça

Estás a indicar "(Jogo)" como o teu servidor SQL e provavelmente não o é...

Coloca ai o nome do Servidor SQL.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
firefighter

que bela questão...mas há um problema :O

o servidor SQL é gerado pelo própro Visual Web Developer 2010, no qual, o nome do projecto é Universal Chaos

quando abro o SQL, tenho:

- Data Connections

    - ASPNETDB.MDF (criada pelo ASP.NET)

    - Jogo.mdf (a minha bade de dados)

de onde saco o nome? :|

P.S.: peço desclupa por ter inicialmente colocado no sitio errado  :fartnew2:

Share this post


Link to post
Share on other sites
Caça

Tenta com .\SQLEXPRESS

Se não der abre a linha de comandos e coloca

sqlcmd -L


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
firefighter

.\SQLEXPRESS --> com isto o c# não reconhece...diz que é uma cadeia de caracteres inválida

executei o comando que me deste, e:

Servers:

RICARDO-PC

meti lá então "RICARDO-PC", e o erro foi o mesmo...:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Share this post


Link to post
Share on other sites
firefighter

um pormenor, que não sei se é ou não relevante

eu tou a fazer esta conecção no Page Load...isso faz alguma diferença?

Share this post


Link to post
Share on other sites
Caça

Não.

No sitio onde disseste que tinas ASPNETDB.MDF..., clica com a tecla direita do rato em cima da tua BD e vê as propriedades.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
firefighter
Connection String -- >

Data Source=.\SQLEXPRESS;AttachDbFilename="D:\IPG\Programação para a internet\Universal Chaos\App_Data\Jogo.mdf";Integrated Security=True;User Instance=True

Provider -->

.NET Framework Data Provider for SQL Server

State -->

Closed

Porque é que aqui só aparece ".\SQLEXPRESS" e se usar isso, dá erro?

Share this post


Link to post
Share on other sites
Caça

Não sei...

Essa conexão está a usar o método de anexo e a que tu estás a usar não.

Usa essa Connection String.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
firefighter

faço então:

SqlConnection conn = new SqlConnection(
            "Data Source=.\SQLEXPRESS;AttachDbFilename="D:\IPG\Programação para a internet\Universal Chaos\App_Data\Jogo.mdf";Integrated Security=True;User Instance=True");

??

é que isto vai dar erro por causa dos "" na parte "D:\IPG\..."

Share this post


Link to post
Share on other sites
firefighter

já deu :)

quer dizer, deu, passar dali LOOL

mas onde havia "\" tive que meter "\\", inclusive no caminho "D\\IPG\\..."

mas agora

There is already an open DataReader associated with this Command which must be closed first.

em

using (SqlDataReader reader = command.ExecuteReader())

quando faço o "ExecuteReader", funciona como uma nova conecção? Isto é...se abri uma conecção lá em cima, para usar este, tenho que fechar a anterior?

EDIT:

apaguei aquilo, e deixou de dar erro, já executa...mas, eu acho ue vou precisar daquilo...mas passo a explicar, para me poderes dizer :confused:

vou dar agora um exemplo prático do objectivo de tudo isto

ali dentro pode ver "nhangar" que é um numero inteiro

quero fazer uma conta do género:

variavel1 = 60 - (nhangar*0.01)

label1.text = variavel1

isto, faço onde exactamente?

Share this post


Link to post
Share on other sites
Caça

Quando não precisares mais do DataReader, fecha-o chamando o método .Close()

myReader.Close();


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
renafi

Se quiseres, em vez de teres de por as \\, podes por uma @ no incio da string para eliminar a lógica da \.


Oracle Certified Professional - AdministraçãoOracle Certified Professional - Pl/sqlMCPD - Microsoft Certified Professional DeveloperMCTS - Microsoft Certified Technology Specialist

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.