Das Problem ist, dass Sie den Befehl nicht wirklich für die Datenbank ausführen. Sie definieren den zu verwendenden InsertCommand, aber er wird nicht ausgeführt.
Basierend auf diesem Code sehe ich nicht, dass Sie sowieso einen DataAdapter/DataSet verwenden müssen, verwenden Sie einfach einen SqlCommand, um die Einfügung durchzuführen, was leichter ist. Etwa so:
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();
}
}
}
Ich würde auch empfehlen, ntext dafür nicht in Ihrer Datenbank zu verwenden. Wenn Sie wirklich Unicode-Unterstützung benötigen, verwenden Sie nvarchar, das vor SQL 2005 bis zu 4000 Zeichen umfassen kann, oder nvarchar(max), das ab SQL 2005 bis zu ntext speichern kann. Wenn Sie keine Unicode-Unterstützung benötigen, verwenden Sie stattdessen varchar (8000 Zeichen vor SQL 2005, VARCHAR(MAX) ab SQL 2005 erlaubt dasselbe wie Text)