Il problema è che non stai effettivamente eseguendo il comando sul database. Stai definendo l'InsertCommand da usare, ma non viene eseguito.
Sulla base di quel codice, non vedo che sia necessario utilizzare comunque un DataAdapter/DataSet, basta usare un SqlCommand per eseguire l'inserimento, che è più leggero. Qualcosa del genere:
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();
}
}
}
Consiglierei anche di non usare ntext per questo nel tuo db. Se hai davvero bisogno del supporto Unicode, usa nvarchar che può arrivare fino a 4000 caratteri pre-sql 2005, o nvarchar(max) che può memorizzare fino a ntext da SQL 2005 in poi. Se non hai bisogno del supporto Unicode, usa invece varchar (8000 caratteri pre-sql 2005, VARCHAR(MAX) da SQL 2005 in poi consente lo stesso come testo)