Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Stockage de l'URL dans SQLSERVER 2005 à l'aide du code C # (ensembles de données)

Le problème est que vous n'exécutez pas réellement la commande sur la base de données. Vous définissez la InsertCommand à utiliser, mais elle n'est pas exécutée.

Sur la base de ce code, je ne vois pas que vous ayez besoin d'utiliser un DataAdapter/DataSet de toute façon, utilisez simplement un SqlCommand pour faire l'insertion, qui est plus légère. Quelque chose comme ça :

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();
        }
    }
}

Je recommanderais également de ne pas utiliser ntext pour cela dans votre base de données. Si vous avez vraiment besoin du support Unicode, utilisez nvarchar qui peut aller jusqu'à 4000 caractères avant SQL 2005, ou nvarchar(max) qui peut stocker autant que ntext à partir de SQL 2005. Si vous n'avez pas besoin du support Unicode, utilisez varchar à la place (8000 caractères pré-sql 2005, VARCHAR(MAX) à partir de SQL 2005 autorise la même chose que le texte)