Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: shin_akuma en 10 Mayo 2008, 20:40 pm



Título: conexion base de datos sql con c#
Publicado por: shin_akuma en 10 Mayo 2008, 20:40 pm
Hola que tal

mira tengo un problema para conectar sql server express 2005 con un programa que estoy haciendo con C# en visual studio 2008

bien ya trate de de aserlo por medio del asistente pero solo se conecta no puedo manupular la base de datos para hacer una consulta y me crea un cajerodata set y trae la base de datos cajero.mdf a la carpeta pincipal

tambien trate de hacer conexion de forma manul pero a diferencia de el asistente simplemente me dice que no se puede conectar y me aparece la siguiente conexion

Código:
System.Data.SqlClient.SqlException: An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject)
   at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
   at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
   at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.SqlClient.SqlConnection.Open()
   at WindowsFormsApplication1.Form1.conexion() in C:\akuma\Proyectos c#\practicas\cajero automatico\cajero automatico\Form1.cs:line

Y la conexion no deberia ser problema puesto que el asistente si se conecta y este es el codigo del programa


Código:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Data.Sql;
using System.Data.SqlClient;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {           
        }

        private void button2_Click(object sender, EventArgs e)
        {
            conexion();
        }
               
        private void conexion()
        {
            SqlConnection conn = new SqlConnection("Data Source=/.SQLEXPRESS;AttachDbFilename=cajero.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
            try
            {

                conn.Open();
                MessageBox.Show("se conecto exitosamente");

            }
            catch (Exception e)
            {
                MessageBox.Show("no se pudo conectar error");
                txtus.AppendText(Convert.ToString(e));
            }             

        }
    }
}

Ya llevo tiempo con esto deverdad espero que me puedan ayudar saludos


Título: Re: conexion base de datos sql con c#
Publicado por: MANULOMM en 23 Mayo 2008, 02:59 am
En la cadena de conexion tienes /.sqlexpress y es ./sqlexpress por eso el error de que no puedo conectar con el servidor, pues el que tienes no existe!!!!

Atentamente,

Juan Manuel Lombana
Medellín - Colombia


Título: Re: conexion base de datos sql con c#
Publicado por: shin_akuma en 23 Mayo 2008, 21:04 pm
Citar
En la cadena de conexion tienes /.sqlexpress y es ./sqlexpress por eso el error de que no puedo conectar con el servidor, pues el que tienes no existe!!!!

Atentamente,

nop no es eso ya lo cambie pero nada

Código:
SqlConnection conn = new SqlConnection("Data Source=./SQLEXPRESS;AttachDbFilename=cajero.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

debe ser otra cosa o alguien sabe hacer consultas  sql con el asistende (para poner el codigo en c#)


Título: Re: conexion base de datos sql con c#
Publicado por: Hadess_inf en 23 Mayo 2008, 23:11 pm
Porque siemplemente en el data soure no le das igual a punto "."
Osea quedaria

"...data source=.;...."


Título: Re: conexion base de datos sql con c#
Publicado por: shin_akuma en 26 Mayo 2008, 22:57 pm
nop funciona nose que esta mal ya probe lo que me digiste  hadesinfo y detodas maneras me dise que no hay conexion

mmm nose es una idea pero con el asistente me manda este ripo de conexion solo que cambia de diagonales a diagonales invertidas pero me manda un error de compilacion pero es como supongo que el asistente hace conexion, pero de forma manual no se puede.
Este es el codigo

Código:
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\cajero.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True


haora que si no se nos ocurre nada para cambiar la situacion como se trabaja con las consultas por medio de el asistente

por ejemplo se presiona un boton genera una consulta a sql y los envia a una caja de texto



Título: Re: conexion base de datos sql con c#
Publicado por: Toxico en 28 Mayo 2008, 20:40 pm
Agregale en lugar de ./SQLEXPRESS, ponle .//SQLEXPRESS.


Título: Re: conexion base de datos sql con c#
Publicado por: shin_akuma en 30 Mayo 2008, 00:17 am
 :xD :xD
increible no puedo creerlo lo unico que faltaba era ponerle alt+92 otravez
bueno gracias aqui dejo el codigo para futuras dudas sobre esto:

Código:
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Data.Sql;
using System.Data.SqlClient;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
           
        }

        private void button2_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\cajero.mdf;Integrated Security=True;Connect Timeout=10;User Instance=True");
            try
            {
                conn.Open();
                MessageBox.Show("se conecto exitosamente");
            }
           
            catch (Exception)
            {
                MessageBox.Show("no se pudo conectar error");
            }
           
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
           
        }
    }
}



Título: Re: conexion base de datos sql con c#
Publicado por: shin_akuma en 30 Mayo 2008, 00:41 am
aprovechando como puedo realizar consultas ya que e visto varios codigos en google pero utilizan otro tipo de conexion con la base de datos como data set y oledb.connection pero no realizan una consulta combesional sino creacion de tablas y algunas otras cosas

la pregunta es como puedo realizar una consulta de sql con select, insert, o uptate?


Título: Re: conexion base de datos sql con c#
Publicado por: Toxico en 31 Mayo 2008, 22:54 pm
diablos me confundi tenias razon era el "\" publique algo apurado la respuesta  :xD, bueno:


Lo que yo te aconsejo es hacer las consultas en un stored procedure y luego hacer el llamado a los stored procedure desde una capa de acceso a datos. Esto a rasgos generales si no lo entiendes o no lo puedes hacer me lo haces saber para hacer una explicacion mas detallada.



Título: Re: conexion base de datos sql con c#
Publicado por: HappyLellow en 11 Junio 2008, 19:33 pm
aprovechando como puedo realizar consultas ya que e visto varios codigos en google pero utilizan otro tipo de conexion con la base de datos como data set y oledb.connection pero no realizan una consulta combesional sino creacion de tablas y algunas otras cosas

la pregunta es como puedo realizar una consulta de sql con select, insert, o uptate?
Hola,

Hay una diferencia básica, y es que en este caso la ejecución del comando no retorna nada de la Base de Datos como una tabla o un registro, por tanto debes hacerlo mediante el método ExecuteNonQuery del SqlCommand después de haberle asignado a este la sentencia que quieras en la propiedad CommandText.

Espero que te sirva de guía. Saludos.