Quiero establecer una conexión de base de datos para recibir los detalles de los clientes utilizando C#. Estoy utilizando sql-server 2008 junto con visual studio 2010…..

Aquí está este código:

<asp:Textbox id="TxtBox1" runat="server" />
<asp:Textbox id="TxtBox2" runat="server" />
<asp:Button id="Button1" runat="server" Onclick="Button1_Click" />

y el código subyacente:

protected void Button1_Click(Object sender,EventArgs e)
{
string Text1=TextBox1.Text;
string Text2=TextBox2.Text;
string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;  Password=YourPassword;"

SqlConnection sqlConnection=new SqlConnection(connectionString);

string insertStatement="INSERT INTO TableName(column1,column2) VALUES Txtb1+","+Txtb2";

SqlCommand sqlCommand=new SqlCommand(insertStatement,sqlConnection);

try
{
sqlConnection.Open();
sqlCommand.ExecuteNonQuery();

}
finally
{
sqlConnection.Close();
}


}

Que he creado a los datos.archivo mdf en ella he creado la tabla que contiene los campos, pero estoy recibiendo Conexión no se ha establecido error puede alguien ayudarme a resolver mi problema???

  • No utilizar la cuenta de sa en aplicaciones! Este código es muy vulnerable a un ataque de inyección de sql, por no mencionar el hecho de que la cadena de conexión es incorrecto, y la inserStatment línea no se compilará.
  • Lo siento..,no me podría usted por favor expresarme acerca de sa???
  • Usted está utilizando la cuenta de administrador. El que tiene acceso completo a la de sql server. Todo lo que usted necesita es una cuenta con acceso de escritura a la tabla. Utilice siempre los permisos mínimos posibles.
  • La investigación adecuada es una necesidad: connectionstrings.com
  • kk si no te importa puedes publicar el código modificado por tomar un pequeño ejemplo, teniendo los dos campos de texto y después de hacer clic en el botón de enviar los datos serán almacenados en la base de datos(estoy usando visual studio 2010 y sql server 2008 junto con esto basado en mi requisito puede usted por favor enviar el código alternativo)
InformationsquelleAutor user1918566 | 2012-12-20

4 Comentarios

  1. 5

    Esta cadena de conexión es incorrecta.

    string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;" + 
                            "Password=YourPassword;"

    debe ser

    string connectionString="Data Source=servername;InitialCatalog=DataBaseName; UserID=sa;" + 
                            "Password=YourPassword;"

    Sin embargo, NUNCA uso el usuario sa en sus aplicaciones. Crear un nuevo usuario con Management Studio o mejor el uso Integrado de Seguridad.

    También el resto de su código debe ser escrito de esta forma

    using(SqlConnection sqlConnection=new SqlConnection(connectionString))
    {
         string insertStatement="INSERT INTO TableName(column1,column2) VALUES (@col1, @col2)";
         SqlCommand sqlCommand=new SqlCommand(insertStatement,sqlConnection);
         sqlCommand.Parameters.AddWithValue("@col1", Text1);
         sqlCommand.Parameters.AddWithValue("@col2", Text2);
         sqlConnection.Open();
         sqlCommand.ExecuteNonQuery();
    }
    • Me golpearon a la re-escribir demasiado. Siempre me encierre el SqlCommand en un bloque using así.
    • Sí, se debe hacer también en SqlCommand, pero es en el objeto SqlConnection que el problema es grande
    • después de hacer clic en el botón enviar basado en el código no hay ninguna respuesta para que el código de
    • Yo no lo entiendo. ¿Qué quieres decir con que no hay ninguna respuesta’? El código no se ejecuta?, el registro no está escrito a la base de datos? qué se puede esperar cualquier feedback visual de la ejecución de código? Por favor explique
  2. 0

    Este código no compila. Usted necesita agregar un punto y coma a esta línea:

    string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;  Password=YourPassword;"

    Así:

    string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;  Password=YourPassword;";

    Usted también tendrá que cambiar esta línea:

    string insertStatement="INSERT INTO TableName(column1,column2) VALUES Txtb1+","+Txtb2";

    A este:

    string insertStatement = "INSERT INTO TableName(column1,column2) VALUES " + Text1 + ", " + Text2;
  3. 0

    La cadena de conexión en sí puede ser el problema, windows tiene una manera fácil de crear una cadena de conexión válida que puede probar y luego sólo tienes que copiar a su aplicación. Escribí sobre ello hace un par de meses aquí:

    Consejos para su aplicación:

    • Tal y como señala en asawyer, no utilizar la cuenta de sa, crear un inicio de sesión con el acceso a la base de datos(s) que usted necesita.

    • Utilizar el el uso de declaración

    ejemplo:

    using (SqlConnection connection = new SqlConnection(connectionString))  
        {  
          //here you open and execute the command
        }
  4. 0

    usar la cadena de conexión de la siguiente manera:

    connectionString="Data Source=ServerAddress;Initial Catalog=DataBaseName;Integrated Security=SSPI;User ID=Domain\Username;Password=Password;"

Dejar respuesta

Please enter your comment!
Please enter your name here