sql >> Databáze >  >> RDS >> Sqlserver

Uložení adresy URL v SQLSERVER 2005 pomocí kódu C# (sady dat)

Problém je v tom, že ve skutečnosti neprovádíte příkaz proti databázi. Definujete InsertCommand, který se má použít, ale není prováděn.

Na základě tohoto kódu nevidím, že byste přesto potřebovali použít DataAdapter/DataSet, stačí k vložení použít SqlCommand, který je lehčí. Něco takového:

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

Také bych doporučil nepoužívat ntext pro toto ve vaší db. Pokud opravdu potřebujete podporu unicode, použijte nvarchar, který může mít až 4000 znaků před SQL 2005, nebo nvarchar(max), který dokáže uložit tolik jako ntext od SQL 2005 a výše. Pokud nepotřebujete podporu unicode, použijte místo toho varchar (8000 znaků pre-sql 2005, VARCHAR(MAX) od SQL 2005 a novější umožňuje totéž jako text)



  1. Správný způsob, jak anotovat pole hodnocení pro sadu dotazů

  2. Jak opravit MySql:velikost sloupce indexu je příliš velká (migrace Laravel)

  3. Jak vytvořit Restful Password Reminder a změnit pole User email na pole username s Laravel 5.0?

  4. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Selhání komunikačního odkazu