Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Armazenando o URL no SQLSERVER 2005 usando o código C# (conjuntos de dados)


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)