conexion base de datos sql con c#

Iniciado por shin_akuma, 10 Mayo 2008, 20:40 PM

0 Miembros y 1 Visitante están viendo este tema.

shin_akuma

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

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




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
El conocimiento es poder!!!

Saludos!!



MANULOMM

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


shin_akuma

CitarEn 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


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#)
El conocimiento es poder!!!

Saludos!!



Hadess_inf

Porque siemplemente en el data soure no le das igual a punto "."
Osea quedaria

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

shin_akuma

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


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

El conocimiento es poder!!!

Saludos!!



Toxico

Agregale en lugar de ./SQLEXPRESS, ponle .//SQLEXPRESS.
solo el principio....


shin_akuma

 :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:


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)
        {
           
        }
    }
}

El conocimiento es poder!!!

Saludos!!



shin_akuma

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?
El conocimiento es poder!!!

Saludos!!



Toxico

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.

solo el principio....


HappyLellow

Cita de: 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?
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.
Whatever stops you from dreamin'
Whatever trys to stop you from livin'
Flip it