O problema é que você não está realmente executando o comando no banco de dados. Você está definindo o InsertCommand a ser usado, mas não está sendo executado.
Com base nesse código, não vejo que você precise usar um DataAdapter/DataSet de qualquer maneira, basta usar um SqlCommand para fazer a inserção, que é mais leve. Algo assim:
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();
}
}
}
Eu também recomendo não usar ntext para isso em seu banco de dados. Se você realmente precisa de suporte unicode, use nvarchar que pode ir até 4000 caracteres pré-sql 2005, ou nvarchar(max) que pode armazenar até ntext do SQL 2005 em diante. Se você não precisar de suporte a unicode, use varchar (8000 caracteres pré-sql 2005, VARCHAR(MAX) do SQL 2005 em diante permite o mesmo que texto)