sql >> Base de Datos >  >> RDS >> Sqlserver

Almacenamiento de la url en SQLSERVER 2005 usando código C# (conjuntos de datos)

El problema es que en realidad no está ejecutando el comando contra la base de datos. Estás definiendo el InsertCommand a usar, pero no se está ejecutando.

Según ese código, no veo que necesite usar un DataAdapter/DataSet de todos modos, solo use un SqlCommand para hacer la inserción, que es más liviano. Algo como esto:

public void Storetxt(String txt)
{
    //connection to the database
    string connection = "Data Source=.\\sqlexpress2005;Initial Catalog=PtsKuratlas;Integrated Security=True";
    SqlConnection conn = null;
    SqlCommand cmd = null;
    try
    {
        conn = new SqlConnection(connection);
        cmd = new SqlCommand("INSERT INTO gti_analytics (Links) VALUES (@Link)", conn);
        cmd.CommandType = CommandType.Text;
        cmd.Parameters.AddWithValue("@Link", txt);
        conn.Open();
        cmd.ExecuteNonQuery();
    }
    catch{//handle exceptions}
    finally
    {
        if (cmd != null) cmd.Dispose();
        if (conn != null) 
        {
            if (conn.State == ConnectionState.Open) conn.Close();
            conn.Dispose();
        }
    }
}

También recomendaría no usar ntext para esto en su base de datos. Si realmente necesita compatibilidad con Unicode, use nvarchar, que puede llegar hasta 4000 caracteres antes de SQL 2005, o nvarchar(max), que puede almacenar tanto como ntext desde SQL 2005 en adelante. Si no necesita compatibilidad con Unicode, use varchar en su lugar (8000 caracteres anteriores a SQL 2005, VARCHAR (MAX) desde SQL 2005 en adelante permite lo mismo que el texto)